{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Y57RMM1LEQmR"
   },
   "source": [
    "#  <span style=\"color:orange\">Binary Classification Tutorial (CLF101) - Level Beginner</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "GM-nQ7LqEQma"
   },
   "source": [
    "**Date Updated: May 02, 2020**\n",
    "\n",
    "# 1.0 Tutorial Objective\n",
    "Welcome to the Binary Classification Tutorial (CLF101) - Level Beginner. This tutorial assumes that you are new to PyCaret and looking to get started with binary classification using the `pycaret.classification` Module.\n",
    "\n",
    "In this tutorial we will learn:\n",
    "\n",
    "\n",
    "* **Getting Data:**  How to import data from PyCaret repository\n",
    "* **Setting up Environment:**  How to setup an experiment in PyCaret and get started with building classification models\n",
    "* **Create Model:**  How to create a model, perform stratified cross validation and evaluate classification metrics\n",
    "* **Tune Model:**  How to automatically tune the hyper-parameters of a classification model\n",
    "* **Plot Model:**  How to analyze model performance using various plots\n",
    "* **Finalize Model:** How to finalize the best model at the end of the experiment\n",
    "* **Predict Model:**  How to make predictions on new / unseen data\n",
    "* **Save / Load Model:**  How to save / load a model for future use\n",
    "\n",
    "Read Time : Approx. 30 Minutes\n",
    "\n",
    "\n",
    "## 1.1 Installing PyCaret\n",
    "The first step to get started with PyCaret is to install PyCaret. Installation is easy and will only take a few minutes. Follow the instructions below:\n",
    "\n",
    "#### Installing PyCaret in Local Jupyter Notebook\n",
    "`pip install pycaret`  <br />\n",
    "\n",
    "#### Installing PyCaret on Google Colab or Azure Notebooks\n",
    "`!pip install pycaret`\n",
    "\n",
    "\n",
    "## 1.2 Pre-Requisites\n",
    "- Python 3.x\n",
    "- Latest version of pycaret\n",
    "- Internet connection to load data from pycaret's repository\n",
    "- Basic Knowledge of Binary Classification\n",
    "\n",
    "## 1.3 For Google colab users:\n",
    "If you are running this notebook on Google Colab, run the following code at top of your notebook to display interactive visuals.<br/>\n",
    "<br/>\n",
    "`from pycaret.utils import enable_colab` <br/>\n",
    "`enable_colab()`\n",
    "\n",
    "\n",
    "## 1.4 See also:\n",
    "- __[Binary Classification Tutorial (CLF102) - Intermediate Level](https://github.com/pycaret/pycaret/blob/master/Tutorials/Binary%20Classification%20Tutorial%20Level%20Intermediate%20-%20CLF102.ipynb)__\n",
    "- __[Binary Classification Tutorial (CLF103) - Expert Level](https://github.com/pycaret/pycaret/blob/master/Tutorials/Binary%20Classification%20Tutorial%20Level%20Expert%20-%20CLF103.ipynb)__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "2DJaOwC_EQme"
   },
   "source": [
    "# 2.0 What is Binary Classification?\n",
    "Binary classification is a supervised machine learning technique where the goal is to predict categorical class labels which are discrete and unoredered such as Pass/Fail, Positive/Negative, Default/Not-Default etc. A few real world use cases for binary classification are listed below:\n",
    "\n",
    "- Medical testing to determine if a patient has a certain disease or not - the classification property is the presence of the disease.\n",
    "- A \"pass or fail\" test method or quality control in factories, i.e. deciding if a specification has or has not been met – a go/no-go classification.\n",
    "- Information retrieval, namely deciding whether a page or an article should be in the result set of a search or not – the classification property is the relevance of the article, or the usefulness to the user.\n",
    "\n",
    "__[Learn More about Binary Classification](https://medium.com/@categitau/in-one-of-my-previous-posts-i-introduced-machine-learning-and-talked-about-the-two-most-common-c1ac6e18df16)__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "XC3kSuueEQmh"
   },
   "source": [
    "# 3.0 Overview of the Classification Module in PyCaret\n",
    "PyCaret's classification module (`pycaret.classification`) is a supervised machine learning module which is used for classifying the elements into a binary group based on various techniques and algorithms. Some common use cases of binary classification problems include predicting customer default (yes or no), customer churn (customer will leave or stay), disease found (positive or negative).\n",
    "\n",
    "The PyCaret classification module can be used for binary or multi-class classification problems. It has over 18 algorithms and 14 plots to analyze the performance of models. Be it hyper-parameter tuning, ensembling or advanced techniques like stacking, PyCaret's classification module has it all."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "aAKRo-EbEQml"
   },
   "source": [
    "# 4.0 Dataset for the Tutorial"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "VLKxlFjrEQmq"
   },
   "source": [
    "For this tutorial we will use a dataset from UCI called **Default of Credit Card Clients Dataset**. This dataset contains information on default payments, demographic factors, credit data, payment history, and billing statements of credit card clients in Taiwan from April 2005 to September 2005. There are 24,000 samples and 25 features. Short descriptions of each column are as follows:\n",
    "\n",
    "- **ID:** ID of each client\n",
    "- **LIMIT_BAL:** Amount of given credit in NT dollars (includes individual and family/supplementary credit)\n",
    "- **SEX:** Gender (1=male, 2=female)\n",
    "- **EDUCATION:** (1=graduate school, 2=university, 3=high school, 4=others, 5=unknown, 6=unknown)\n",
    "- **MARRIAGE:** Marital status (1=married, 2=single, 3=others)\n",
    "- **AGE:** Age in years\n",
    "- **PAY_0 to PAY_6:** Repayment status by n months ago (PAY_0 = last month ... PAY_6 = 6 months ago) (Labels: -1=pay duly, 1=payment delay for one month, 2=payment delay for two months, ... 8=payment delay for eight months, 9=payment delay for nine months and above)\n",
    "- **BILL_AMT1 to BILL_AMT6:** Amount of bill statement by n months ago ( BILL_AMT1 = last_month .. BILL_AMT6 = 6 months ago)\n",
    "- **PAY_AMT1 to PAY_AMT6:** Amount of payment by n months ago ( BILL_AMT1 = last_month .. BILL_AMT6 = 6 months ago)\n",
    "- **default:** Default payment (1=yes, 0=no) `Target Column`\n",
    "\n",
    "#### Dataset Acknowledgement:\n",
    "Lichman, M. (2013). UCI Machine Learning Repository. Irvine, CA: University of California, School of Information and Computer Science.\n",
    "\n",
    "The original dataset and data dictionary can be __[found here.](https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients)__ "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Ui_rALqYEQmv"
   },
   "source": [
    "# 5.0 Getting the Data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "BfqIMeJNEQmz"
   },
   "source": [
    "You can download the data from the original source __[found here](https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients)__ and load it using pandas __[(Learn How)](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html)__ or you can use PyCaret's data respository to load the data using the `get_data()` function (This will require an internet connection)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:18:07.537774Z",
     "start_time": "2020-05-02T10:17:55.015853Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 211
    },
    "colab_type": "code",
    "id": "lUvE187JEQm3",
    "outputId": "8741262c-0e33-4ec0-b54d-3c8fb41e52c0"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LIMIT_BAL</th>\n",
       "      <th>SEX</th>\n",
       "      <th>EDUCATION</th>\n",
       "      <th>MARRIAGE</th>\n",
       "      <th>AGE</th>\n",
       "      <th>PAY_1</th>\n",
       "      <th>PAY_2</th>\n",
       "      <th>PAY_3</th>\n",
       "      <th>PAY_4</th>\n",
       "      <th>PAY_5</th>\n",
       "      <th>...</th>\n",
       "      <th>BILL_AMT4</th>\n",
       "      <th>BILL_AMT5</th>\n",
       "      <th>BILL_AMT6</th>\n",
       "      <th>PAY_AMT1</th>\n",
       "      <th>PAY_AMT2</th>\n",
       "      <th>PAY_AMT3</th>\n",
       "      <th>PAY_AMT4</th>\n",
       "      <th>PAY_AMT5</th>\n",
       "      <th>PAY_AMT6</th>\n",
       "      <th>default</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>24</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-2</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>689.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>90000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>34</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>14331.0</td>\n",
       "      <td>14948.0</td>\n",
       "      <td>15549.0</td>\n",
       "      <td>1518.0</td>\n",
       "      <td>1500.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>50000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>37</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>28314.0</td>\n",
       "      <td>28959.0</td>\n",
       "      <td>29547.0</td>\n",
       "      <td>2000.0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>1100.0</td>\n",
       "      <td>1069.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>50000</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>57</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>20940.0</td>\n",
       "      <td>19146.0</td>\n",
       "      <td>19131.0</td>\n",
       "      <td>2000.0</td>\n",
       "      <td>36681.0</td>\n",
       "      <td>10000.0</td>\n",
       "      <td>9000.0</td>\n",
       "      <td>689.0</td>\n",
       "      <td>679.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>50000</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>37</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>19394.0</td>\n",
       "      <td>19619.0</td>\n",
       "      <td>20024.0</td>\n",
       "      <td>2500.0</td>\n",
       "      <td>1815.0</td>\n",
       "      <td>657.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>800.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   LIMIT_BAL  SEX  EDUCATION  MARRIAGE  AGE  PAY_1  PAY_2  PAY_3  PAY_4  \\\n",
       "0      20000    2          2         1   24      2      2     -1     -1   \n",
       "1      90000    2          2         2   34      0      0      0      0   \n",
       "2      50000    2          2         1   37      0      0      0      0   \n",
       "3      50000    1          2         1   57     -1      0     -1      0   \n",
       "4      50000    1          1         2   37      0      0      0      0   \n",
       "\n",
       "   PAY_5  ...  BILL_AMT4  BILL_AMT5  BILL_AMT6  PAY_AMT1  PAY_AMT2  PAY_AMT3  \\\n",
       "0     -2  ...        0.0        0.0        0.0       0.0     689.0       0.0   \n",
       "1      0  ...    14331.0    14948.0    15549.0    1518.0    1500.0    1000.0   \n",
       "2      0  ...    28314.0    28959.0    29547.0    2000.0    2019.0    1200.0   \n",
       "3      0  ...    20940.0    19146.0    19131.0    2000.0   36681.0   10000.0   \n",
       "4      0  ...    19394.0    19619.0    20024.0    2500.0    1815.0     657.0   \n",
       "\n",
       "   PAY_AMT4  PAY_AMT5  PAY_AMT6  default  \n",
       "0       0.0       0.0       0.0        1  \n",
       "1    1000.0    1000.0    5000.0        0  \n",
       "2    1100.0    1069.0    1000.0        0  \n",
       "3    9000.0     689.0     679.0        0  \n",
       "4    1000.0    1000.0     800.0        0  \n",
       "\n",
       "[5 rows x 24 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from pycaret.datasets import get_data\n",
    "dataset = get_data('credit')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:18:10.022861Z",
     "start_time": "2020-05-02T10:18:10.019182Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 33
    },
    "colab_type": "code",
    "id": "kMqDGBkJEQnN",
    "outputId": "b2015b7a-4c1a-4377-d9cf-3e9ac5ce3ea2"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(24000, 24)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#check the shape of data\n",
    "dataset.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "LyGFryEhEQne"
   },
   "source": [
    "In order to demonstrate the `predict_model()` function on unseen data, a sample of 1200 records has been withheld from the original dataset to be used for predictions. This should not be confused with a train/test split as this particular split is performed to simulate a real life scenario. Another way to think about this is that these 1200 records are not available at the time when the machine learning experiment was performed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:18:42.422095Z",
     "start_time": "2020-05-02T10:18:42.407112Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 50
    },
    "colab_type": "code",
    "id": "hXmaL1xFEQnj",
    "outputId": "f1f62a7d-5d3d-4832-ee00-a4d20ee39c41"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Data for Modeling: (22800, 24)\n",
      "Unseen Data For Predictions: (1200, 24)\n"
     ]
    }
   ],
   "source": [
    "data = dataset.sample(frac=0.95, random_state=786)\n",
    "data_unseen = dataset.drop(data.index).reset_index(drop=True)\n",
    "data.reset_index(drop=True, inplace=True)\n",
    "\n",
    "print('Data for Modeling: ' + str(data.shape))\n",
    "print('Unseen Data For Predictions: ' + str(data_unseen.shape))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "y9s9wNcjEQn0"
   },
   "source": [
    "# 6.0 Setting up Environment in PyCaret"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "ZlA01j6NEQn7"
   },
   "source": [
    "The `setup()` function initializes the environment in PyCaret and creates the transformation pipeline to prepare the data for modeling and deployment. `setup()` must be called before executing any other function in PyCaret. It takes two mandatory parameters: a pandas dataframe and the name of the target column. All other parameters are optional and are used to customize the pre-processing pipeline (we will see them in later tutorials).\n",
    "\n",
    "When `setup()` is executed, PyCaret's inference algorithm will automatically infer the data types for all features based on certain properties. The data type should be inferred correctly but this is not always the case. To account for this, PyCaret displays a table containing the features and their inferred data types after `setup()` is executed. If all of the data types are correctly identified, `enter` can be pressed to continue or `quit` can be typed to end the expriment. Ensuring that the data types are correct is of fundamental importance in PyCaret as it automatically performs a few pre-processing tasks which are imperative to any machine learning experiment. These tasks are performed differently for each data type which means it is very important for them to be correctly configured.\n",
    "\n",
    "In later tutorials we will learn how to overwrite PyCaret's inferred data type using the `numeric_features` and `categorical_features` parameters in `setup()`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:20:31.529516Z",
     "start_time": "2020-05-02T10:20:31.525864Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "BOmRR0deEQoA"
   },
   "outputs": [],
   "source": [
    "from pycaret.classification import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:20:40.036384Z",
     "start_time": "2020-05-02T10:20:35.517924Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 803
    },
    "colab_type": "code",
    "id": "k2IuvfDHEQoO",
    "outputId": "c7754ae9-b060-4218-b6f0-de65a815aa3a",
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " \n",
      "Setup Succesfully Completed!\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "</style><table id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecf\" ><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >Description</th>        <th class=\"col_heading level0 col1\" >Value</th>    </tr></thead><tbody>\n",
       "                <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow0_col0\" class=\"data row0 col0\" >session_id</td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow0_col1\" class=\"data row0 col1\" >123</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow1_col0\" class=\"data row1 col0\" >Target Type</td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow1_col1\" class=\"data row1 col1\" >Binary</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow2_col0\" class=\"data row2 col0\" >Label Encoded</td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow2_col1\" class=\"data row2 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow3_col0\" class=\"data row3 col0\" >Original Data</td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow3_col1\" class=\"data row3 col1\" >(22800, 24)</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow4_col0\" class=\"data row4 col0\" >Missing Values </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow4_col1\" class=\"data row4 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row5\" class=\"row_heading level0 row5\" >5</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow5_col0\" class=\"data row5 col0\" >Numeric Features </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow5_col1\" class=\"data row5 col1\" >14</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row6\" class=\"row_heading level0 row6\" >6</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow6_col0\" class=\"data row6 col0\" >Categorical Features </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow6_col1\" class=\"data row6 col1\" >9</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row7\" class=\"row_heading level0 row7\" >7</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow7_col0\" class=\"data row7 col0\" >Ordinal Features </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow7_col1\" class=\"data row7 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row8\" class=\"row_heading level0 row8\" >8</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow8_col0\" class=\"data row8 col0\" >High Cardinality Features </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow8_col1\" class=\"data row8 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row9\" class=\"row_heading level0 row9\" >9</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow9_col0\" class=\"data row9 col0\" >High Cardinality Method </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow9_col1\" class=\"data row9 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row10\" class=\"row_heading level0 row10\" >10</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow10_col0\" class=\"data row10 col0\" >Sampled Data</td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow10_col1\" class=\"data row10 col1\" >(22800, 24)</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row11\" class=\"row_heading level0 row11\" >11</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow11_col0\" class=\"data row11 col0\" >Transformed Train Set</td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow11_col1\" class=\"data row11 col1\" >(15959, 90)</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row12\" class=\"row_heading level0 row12\" >12</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow12_col0\" class=\"data row12 col0\" >Transformed Test Set</td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow12_col1\" class=\"data row12 col1\" >(6841, 90)</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row13\" class=\"row_heading level0 row13\" >13</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow13_col0\" class=\"data row13 col0\" >Numeric Imputer </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow13_col1\" class=\"data row13 col1\" >mean</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row14\" class=\"row_heading level0 row14\" >14</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow14_col0\" class=\"data row14 col0\" >Categorical Imputer </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow14_col1\" class=\"data row14 col1\" >constant</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row15\" class=\"row_heading level0 row15\" >15</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow15_col0\" class=\"data row15 col0\" >Normalize </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow15_col1\" class=\"data row15 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row16\" class=\"row_heading level0 row16\" >16</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow16_col0\" class=\"data row16 col0\" >Normalize Method </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow16_col1\" class=\"data row16 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row17\" class=\"row_heading level0 row17\" >17</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow17_col0\" class=\"data row17 col0\" >Transformation </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow17_col1\" class=\"data row17 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row18\" class=\"row_heading level0 row18\" >18</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow18_col0\" class=\"data row18 col0\" >Transformation Method </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow18_col1\" class=\"data row18 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row19\" class=\"row_heading level0 row19\" >19</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow19_col0\" class=\"data row19 col0\" >PCA </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow19_col1\" class=\"data row19 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row20\" class=\"row_heading level0 row20\" >20</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow20_col0\" class=\"data row20 col0\" >PCA Method </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow20_col1\" class=\"data row20 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row21\" class=\"row_heading level0 row21\" >21</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow21_col0\" class=\"data row21 col0\" >PCA Components </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow21_col1\" class=\"data row21 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row22\" class=\"row_heading level0 row22\" >22</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow22_col0\" class=\"data row22 col0\" >Ignore Low Variance </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow22_col1\" class=\"data row22 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row23\" class=\"row_heading level0 row23\" >23</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow23_col0\" class=\"data row23 col0\" >Combine Rare Levels </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow23_col1\" class=\"data row23 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row24\" class=\"row_heading level0 row24\" >24</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow24_col0\" class=\"data row24 col0\" >Rare Level Threshold </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow24_col1\" class=\"data row24 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row25\" class=\"row_heading level0 row25\" >25</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow25_col0\" class=\"data row25 col0\" >Numeric Binning </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow25_col1\" class=\"data row25 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row26\" class=\"row_heading level0 row26\" >26</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow26_col0\" class=\"data row26 col0\" >Remove Outliers </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow26_col1\" class=\"data row26 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row27\" class=\"row_heading level0 row27\" >27</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow27_col0\" class=\"data row27 col0\" >Outliers Threshold </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow27_col1\" class=\"data row27 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row28\" class=\"row_heading level0 row28\" >28</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow28_col0\" class=\"data row28 col0\" >Remove Multicollinearity </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow28_col1\" class=\"data row28 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row29\" class=\"row_heading level0 row29\" >29</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow29_col0\" class=\"data row29 col0\" >Multicollinearity Threshold </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow29_col1\" class=\"data row29 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row30\" class=\"row_heading level0 row30\" >30</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow30_col0\" class=\"data row30 col0\" >Clustering </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow30_col1\" class=\"data row30 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row31\" class=\"row_heading level0 row31\" >31</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow31_col0\" class=\"data row31 col0\" >Clustering Iteration </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow31_col1\" class=\"data row31 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row32\" class=\"row_heading level0 row32\" >32</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow32_col0\" class=\"data row32 col0\" >Polynomial Features </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow32_col1\" class=\"data row32 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row33\" class=\"row_heading level0 row33\" >33</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow33_col0\" class=\"data row33 col0\" >Polynomial Degree </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow33_col1\" class=\"data row33 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row34\" class=\"row_heading level0 row34\" >34</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow34_col0\" class=\"data row34 col0\" >Trignometry Features </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow34_col1\" class=\"data row34 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row35\" class=\"row_heading level0 row35\" >35</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow35_col0\" class=\"data row35 col0\" >Polynomial Threshold </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow35_col1\" class=\"data row35 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row36\" class=\"row_heading level0 row36\" >36</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow36_col0\" class=\"data row36 col0\" >Group Features </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow36_col1\" class=\"data row36 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row37\" class=\"row_heading level0 row37\" >37</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow37_col0\" class=\"data row37 col0\" >Feature Selection </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow37_col1\" class=\"data row37 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row38\" class=\"row_heading level0 row38\" >38</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow38_col0\" class=\"data row38 col0\" >Features Selection Threshold </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow38_col1\" class=\"data row38 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row39\" class=\"row_heading level0 row39\" >39</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow39_col0\" class=\"data row39 col0\" >Feature Interaction </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow39_col1\" class=\"data row39 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row40\" class=\"row_heading level0 row40\" >40</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow40_col0\" class=\"data row40 col0\" >Feature Ratio </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow40_col1\" class=\"data row40 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecflevel0_row41\" class=\"row_heading level0 row41\" >41</th>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow41_col0\" class=\"data row41 col0\" >Interaction Threshold </td>\n",
       "                        <td id=\"T_927657fa_8c5e_11ea_8b75_81959ad66ecfrow41_col1\" class=\"data row41 col1\" >None</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f823e23f4d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "exp_clf101 = setup(data = data, target = 'default', session_id=123) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "JJSOhIOxEQoY"
   },
   "source": [
    "Once the setup has been succesfully executed, it prints the information grid which contains several important pieces of information. Most of the information is related to the pre-processing pipeline which is constructed when `setup()` is executed. The majority of these features are out of scope for the purposes of this tutorial however a few important things to note at this stage include:\n",
    "\n",
    "- **session_id :**  A pseudo-random number distributed as a seed in all functions for later reproducibility. If no `session_id` is passed, a random number is automatically generated that is distributed to all functions. In this experiment, the `session_id` is set as `123` for later reproducibility.<br/>\n",
    "<br/>\n",
    "- **Target Type :**  Binary or Multiclass. The Target type is automatically detected and shown. There is no difference in how the experiment is performed for Binary or Multiclass problems. All functionalities are identical.<br/>\n",
    "<br/>\n",
    "- **Label Encoded :**  When the Target variable is of type string (i.e. 'Yes' or 'No') instead of 1 or 0, it automatically encodes the label into 1 and 0 and displays the mapping (0 : No, 1 : Yes) for reference. In this experiment no label encoding is required since the target variable is of type numeric. <br/>\n",
    "<br/>\n",
    "- **Original Data :**  Displays the original shape of the dataset. In this experiment (22800, 24) means 22,800 samples and 24 features including the target column. <br/>\n",
    "<br/>\n",
    "- **Missing Values :**  When there are missing values in the original data this will show as `True`. For this experiment there are no missing values in the dataset. \n",
    "<br/>\n",
    "<br/>\n",
    "- **Numeric Features :**  The number of features inferred as numeric. In this dataset, 14 out of 24 features are inferred as numeric. <br/>\n",
    "<br/>\n",
    "- **Categorical Features :**  The number of features inferred as categorical. In this dataset, 9 out of 24 features are inferred as categorical. <br/>\n",
    "<br/>\n",
    "- **Transformed Train Set :**  Displays the shape of the transformed training set. Notice that the original shape of (22800, 24) is transformed into (15959, 90) for the transformed train set and the number of features have increased to 90 from 24 due to categorical encoding <br/>\n",
    "<br/>\n",
    "- **Transformed Test Set :**  Displays the shape of the transformed test/hold-out set. There are 6841 samples in test/hold-out set. This split is based on the default value of 70/30 that can be changed using the `train_size` parameter in setup. <br/>\n",
    "\n",
    "Notice how a few tasks that are imperative to perform modeling are automatically handled such as missing value imputation (in this case there are no missing values in the training data, but we still need imputers for unseen data), categorical encoding, etc. Most of the parameters in `setup()` are optional and used for customizing the pre-processing pipeline. These parameters are out of scope for this tutorial but as you progress to the intermediate and expert levels, we will cover them in much greater detail."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "it_nJo1IEQob"
   },
   "source": [
    "# 7.0 Comparing All Models"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "apb_B9bBEQof"
   },
   "source": [
    "Comparing all models to evaluate performance is the recommended starting point for modeling once the setup is completed (unless you exactly know what kind of model you need, which is often not the case). This function trains all models in the model library and scores them using stratified cross validation for metric evaluation. The output prints a score grid that shows average Accuracy, Recall, Precision, F1 and Kappa accross the folds (10 by default) of all the available models in the model library."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:28:18.295961Z",
     "start_time": "2020-05-02T10:24:57.283392Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "AsG0b1NIEQoj",
    "outputId": "a6e3a510-45a1-4782-8ffe-0ec138a64eed",
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecf th {\n",
       "          text-align: left;\n",
       "    }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col1 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col4 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col1 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col6 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col2 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col5 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col3 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }</style><table id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecf\" ><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >Model</th>        <th class=\"col_heading level0 col1\" >Accuracy</th>        <th class=\"col_heading level0 col2\" >AUC</th>        <th class=\"col_heading level0 col3\" >Recall</th>        <th class=\"col_heading level0 col4\" >Prec.</th>        <th class=\"col_heading level0 col5\" >F1</th>        <th class=\"col_heading level0 col6\" >Kappa</th>    </tr></thead><tbody>\n",
       "                <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col0\" class=\"data row0 col0\" >Ridge Classifier</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col1\" class=\"data row0 col1\" >0.823600</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col2\" class=\"data row0 col2\" >0.000000</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col3\" class=\"data row0 col3\" >0.364600</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col4\" class=\"data row0 col4\" >0.693200</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col5\" class=\"data row0 col5\" >0.477600</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow0_col6\" class=\"data row0 col6\" >0.383600</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col0\" class=\"data row1 col0\" >Linear Discriminant Analysis</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col1\" class=\"data row1 col1\" >0.823600</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col2\" class=\"data row1 col2\" >0.770300</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col3\" class=\"data row1 col3\" >0.381300</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col4\" class=\"data row1 col4\" >0.681800</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col5\" class=\"data row1 col5\" >0.488800</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow1_col6\" class=\"data row1 col6\" >0.392300</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col0\" class=\"data row2 col0\" >Gradient Boosting Classifier</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col1\" class=\"data row2 col1\" >0.822500</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col2\" class=\"data row2 col2\" >0.788700</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col3\" class=\"data row2 col3\" >0.364900</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col4\" class=\"data row2 col4\" >0.687000</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col5\" class=\"data row2 col5\" >0.476300</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow2_col6\" class=\"data row2 col6\" >0.381300</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col0\" class=\"data row3 col0\" >Extreme Gradient Boosting</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col1\" class=\"data row3 col1\" >0.821800</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col2\" class=\"data row3 col2\" >0.789400</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col3\" class=\"data row3 col3\" >0.359500</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col4\" class=\"data row3 col4\" >0.686200</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col5\" class=\"data row3 col5\" >0.471500</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow3_col6\" class=\"data row3 col6\" >0.376700</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col0\" class=\"data row4 col0\" >Light Gradient Boosting Machine</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col1\" class=\"data row4 col1\" >0.821400</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col2\" class=\"data row4 col2\" >0.785900</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col3\" class=\"data row4 col3\" >0.387800</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col4\" class=\"data row4 col4\" >0.666300</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col5\" class=\"data row4 col5\" >0.490000</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow4_col6\" class=\"data row4 col6\" >0.390800</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row5\" class=\"row_heading level0 row5\" >5</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col0\" class=\"data row5 col0\" >CatBoost Classifier</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col1\" class=\"data row5 col1\" >0.821000</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col2\" class=\"data row5 col2\" >0.786500</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col3\" class=\"data row5 col3\" >0.384400</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col4\" class=\"data row5 col4\" >0.665800</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col5\" class=\"data row5 col5\" >0.487200</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow5_col6\" class=\"data row5 col6\" >0.388100</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row6\" class=\"row_heading level0 row6\" >6</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col0\" class=\"data row6 col0\" >Ada Boost Classifier</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col1\" class=\"data row6 col1\" >0.818500</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col2\" class=\"data row6 col2\" >0.778300</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col3\" class=\"data row6 col3\" >0.350700</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col4\" class=\"data row6 col4\" >0.672900</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col5\" class=\"data row6 col5\" >0.460700</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow6_col6\" class=\"data row6 col6\" >0.364400</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row7\" class=\"row_heading level0 row7\" >7</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col0\" class=\"data row7 col0\" >Extra Trees Classifier</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col1\" class=\"data row7 col1\" >0.809300</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col2\" class=\"data row7 col2\" >0.753300</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col3\" class=\"data row7 col3\" >0.383900</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col4\" class=\"data row7 col4\" >0.610000</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col5\" class=\"data row7 col5\" >0.471100</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow7_col6\" class=\"data row7 col6\" >0.362000</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row8\" class=\"row_heading level0 row8\" >8</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col0\" class=\"data row8 col0\" >Random Forest Classifier</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col1\" class=\"data row8 col1\" >0.808400</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col2\" class=\"data row8 col2\" >0.738000</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col3\" class=\"data row8 col3\" >0.333700</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col4\" class=\"data row8 col4\" >0.625400</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col5\" class=\"data row8 col5\" >0.434900</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow8_col6\" class=\"data row8 col6\" >0.332300</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row9\" class=\"row_heading level0 row9\" >9</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col0\" class=\"data row9 col0\" >Quadratic Discriminant Analysis</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col1\" class=\"data row9 col1\" >0.789100</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col2\" class=\"data row9 col2\" >0.739100</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col3\" class=\"data row9 col3\" >0.173100</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col4\" class=\"data row9 col4\" >0.626900</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col5\" class=\"data row9 col5\" >0.237200</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow9_col6\" class=\"data row9 col6\" >0.169300</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row10\" class=\"row_heading level0 row10\" >10</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col0\" class=\"data row10 col0\" >Logistic Regression</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col1\" class=\"data row10 col1\" >0.778600</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col2\" class=\"data row10 col2\" >0.650800</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col3\" class=\"data row10 col3\" >0.000600</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col4\" class=\"data row10 col4\" >0.075000</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col5\" class=\"data row10 col5\" >0.001100</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow10_col6\" class=\"data row10 col6\" >0.000100</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row11\" class=\"row_heading level0 row11\" >11</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col0\" class=\"data row11 col0\" >K Neighbors Classifier</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col1\" class=\"data row11 col1\" >0.750500</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col2\" class=\"data row11 col2\" >0.609900</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col3\" class=\"data row11 col3\" >0.180200</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col4\" class=\"data row11 col4\" >0.369300</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col5\" class=\"data row11 col5\" >0.242100</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow11_col6\" class=\"data row11 col6\" >0.113400</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row12\" class=\"row_heading level0 row12\" >12</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col0\" class=\"data row12 col0\" >Decision Tree Classifier</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col1\" class=\"data row12 col1\" >0.729400</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col2\" class=\"data row12 col2\" >0.619700</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col3\" class=\"data row12 col3\" >0.422100</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col4\" class=\"data row12 col4\" >0.395300</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col5\" class=\"data row12 col5\" >0.408100</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow12_col6\" class=\"data row12 col6\" >0.233000</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row13\" class=\"row_heading level0 row13\" >13</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col0\" class=\"data row13 col0\" >SVM - Linear Kernel</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col1\" class=\"data row13 col1\" >0.653000</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col2\" class=\"data row13 col2\" >0.000000</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col3\" class=\"data row13 col3\" >0.254700</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col4\" class=\"data row13 col4\" >0.105600</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col5\" class=\"data row13 col5\" >0.112000</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow13_col6\" class=\"data row13 col6\" >0.012100</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecflevel0_row14\" class=\"row_heading level0 row14\" >14</th>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col0\" class=\"data row14 col0\" >Naive Bayes</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col1\" class=\"data row14 col1\" >0.365100</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col2\" class=\"data row14 col2\" >0.645700</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col3\" class=\"data row14 col3\" >0.902000</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col4\" class=\"data row14 col4\" >0.245500</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col5\" class=\"data row14 col5\" >0.385900</td>\n",
       "                        <td id=\"T_a39bc942_8c5f_11ea_8b75_81959ad66ecfrow14_col6\" class=\"data row14 col6\" >0.058500</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f823e94aad0>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "compare_models()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "nZAUhQGLEQoz"
   },
   "source": [
    "Two simple words of code ***(not even a line)*** have created over 15 models using 10 fold stratified cross validation and evaluated the 5 most commonly used classification metrics (Accuracy, Recall, Precision, F1, Kappa). The score grid printed above highlights the highest performing metric for comparison purposes only. The grid by default is sorted using 'Accuracy' (highest to lowest) which can be changed by passing the `sort` parameter. For example `compare_models(sort = 'Recall')` will sort the grid by Recall instead of Accuracy. If you want to change the fold parameter from the default value of `10` to a different value then you can use the `fold` parameter. For example `compare_models(fold = 5)` will compare all models on 5 fold cross validation. Reducing the number of folds will improve the training time."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "P5m2pciOEQo4"
   },
   "source": [
    "# 8.0 Create a Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "u_6cIilfEQo7"
   },
   "source": [
    "While `compare_models()` is a powerful function and often a starting point in any experiment, it does not return any trained models. PyCaret's recommended experiment workflow is to use `compare_models()` right after setup to evaluate top performing models and finalize a few candidates for continued experimentation. As such, the function that actually allows to you create a model is unimaginatively called `create_model()`. This function creates a model and scores it using stratified cross-validation. Similar to `compare_models()`, the output prints a score grid that shows Accuracy, Recall, Precision, F1 and Kappa by fold. \n",
    "\n",
    "For the remaining part of this tutorial, we will work with the below models as our candidate models. The selections are for illustration purposes only and do not necessarily mean they are the top performing or ideal for this type of data.\n",
    "\n",
    "- Decision Tree Classifier ('dt')\n",
    "- K Neighbors Classifier ('knn')\n",
    "- Random Forest Classifier ('rf')\n",
    "\n",
    "There are 18 classifiers available in the model library of PyCaret. Please view the `create_model()` docstring for the list of all available models."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "UWMSeyNhEQo-"
   },
   "source": [
    "### 8.1 Decision Tree Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:29:00.004644Z",
     "start_time": "2020-05-02T10:28:56.467856Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 392
    },
    "colab_type": "code",
    "id": "LP896uSIEQpD",
    "outputId": "d6d31562-feb5-4052-ee23-0a444fecaacf"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.7325</td>\n",
       "      <td>0.6213</td>\n",
       "      <td>0.4221</td>\n",
       "      <td>0.4005</td>\n",
       "      <td>0.4110</td>\n",
       "      <td>0.2381</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.7237</td>\n",
       "      <td>0.6199</td>\n",
       "      <td>0.4306</td>\n",
       "      <td>0.3878</td>\n",
       "      <td>0.4081</td>\n",
       "      <td>0.2285</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.7400</td>\n",
       "      <td>0.6361</td>\n",
       "      <td>0.4504</td>\n",
       "      <td>0.4184</td>\n",
       "      <td>0.4338</td>\n",
       "      <td>0.2654</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.7155</td>\n",
       "      <td>0.5984</td>\n",
       "      <td>0.3853</td>\n",
       "      <td>0.3646</td>\n",
       "      <td>0.3747</td>\n",
       "      <td>0.1907</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.7375</td>\n",
       "      <td>0.6175</td>\n",
       "      <td>0.4023</td>\n",
       "      <td>0.4057</td>\n",
       "      <td>0.4040</td>\n",
       "      <td>0.2356</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.7356</td>\n",
       "      <td>0.6376</td>\n",
       "      <td>0.4618</td>\n",
       "      <td>0.4127</td>\n",
       "      <td>0.4358</td>\n",
       "      <td>0.2639</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.7237</td>\n",
       "      <td>0.6210</td>\n",
       "      <td>0.4363</td>\n",
       "      <td>0.3889</td>\n",
       "      <td>0.4112</td>\n",
       "      <td>0.2315</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.7387</td>\n",
       "      <td>0.6365</td>\n",
       "      <td>0.4533</td>\n",
       "      <td>0.4167</td>\n",
       "      <td>0.4342</td>\n",
       "      <td>0.2647</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.7262</td>\n",
       "      <td>0.6062</td>\n",
       "      <td>0.3909</td>\n",
       "      <td>0.3833</td>\n",
       "      <td>0.3871</td>\n",
       "      <td>0.2108</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.7210</td>\n",
       "      <td>0.6030</td>\n",
       "      <td>0.3881</td>\n",
       "      <td>0.3743</td>\n",
       "      <td>0.3811</td>\n",
       "      <td>0.2011</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mean</th>\n",
       "      <td>0.7294</td>\n",
       "      <td>0.6197</td>\n",
       "      <td>0.4221</td>\n",
       "      <td>0.3953</td>\n",
       "      <td>0.4081</td>\n",
       "      <td>0.2330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SD</th>\n",
       "      <td>0.0081</td>\n",
       "      <td>0.0134</td>\n",
       "      <td>0.0274</td>\n",
       "      <td>0.0175</td>\n",
       "      <td>0.0211</td>\n",
       "      <td>0.0252</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0       0.7325  0.6213  0.4221  0.4005  0.4110  0.2381\n",
       "1       0.7237  0.6199  0.4306  0.3878  0.4081  0.2285\n",
       "2       0.7400  0.6361  0.4504  0.4184  0.4338  0.2654\n",
       "3       0.7155  0.5984  0.3853  0.3646  0.3747  0.1907\n",
       "4       0.7375  0.6175  0.4023  0.4057  0.4040  0.2356\n",
       "5       0.7356  0.6376  0.4618  0.4127  0.4358  0.2639\n",
       "6       0.7237  0.6210  0.4363  0.3889  0.4112  0.2315\n",
       "7       0.7387  0.6365  0.4533  0.4167  0.4342  0.2647\n",
       "8       0.7262  0.6062  0.3909  0.3833  0.3871  0.2108\n",
       "9       0.7210  0.6030  0.3881  0.3743  0.3811  0.2011\n",
       "Mean    0.7294  0.6197  0.4221  0.3953  0.4081  0.2330\n",
       "SD      0.0081  0.0134  0.0274  0.0175  0.0211  0.0252"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "dt = create_model('dt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:29:21.688606Z",
     "start_time": "2020-05-02T10:29:21.685134Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "FRat05yGEQpQ",
    "outputId": "c8e6a190-8bec-4646-d2c8-8a92b129c484"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "DecisionTreeClassifier(ccp_alpha=0.0, class_weight=None, criterion='gini',\n",
      "                       max_depth=None, max_features=None, max_leaf_nodes=None,\n",
      "                       min_impurity_decrease=0.0, min_impurity_split=None,\n",
      "                       min_samples_leaf=1, min_samples_split=2,\n",
      "                       min_weight_fraction_leaf=0.0, presort='deprecated',\n",
      "                       random_state=123, splitter='best')\n"
     ]
    }
   ],
   "source": [
    "#trained model object is stored in the variable 'dt'. \n",
    "print(dt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "rWUojqBCEQpb"
   },
   "source": [
    "### 8.2 K Neighbors Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:29:51.113643Z",
     "start_time": "2020-05-02T10:29:44.266385Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 392
    },
    "colab_type": "code",
    "id": "2uonD20gEQpe",
    "outputId": "560e3cb6-41d5-4293-b1c5-2bd1cf3bc63b"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.7406</td>\n",
       "      <td>0.5879</td>\n",
       "      <td>0.1671</td>\n",
       "      <td>0.3296</td>\n",
       "      <td>0.2218</td>\n",
       "      <td>0.0857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.7350</td>\n",
       "      <td>0.5787</td>\n",
       "      <td>0.1473</td>\n",
       "      <td>0.2989</td>\n",
       "      <td>0.1973</td>\n",
       "      <td>0.0601</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.7632</td>\n",
       "      <td>0.6648</td>\n",
       "      <td>0.2096</td>\n",
       "      <td>0.4277</td>\n",
       "      <td>0.2814</td>\n",
       "      <td>0.1590</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.7462</td>\n",
       "      <td>0.5984</td>\n",
       "      <td>0.1530</td>\n",
       "      <td>0.3375</td>\n",
       "      <td>0.2105</td>\n",
       "      <td>0.0842</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.7550</td>\n",
       "      <td>0.6098</td>\n",
       "      <td>0.2040</td>\n",
       "      <td>0.3956</td>\n",
       "      <td>0.2692</td>\n",
       "      <td>0.1397</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.7613</td>\n",
       "      <td>0.6203</td>\n",
       "      <td>0.1870</td>\n",
       "      <td>0.4125</td>\n",
       "      <td>0.2573</td>\n",
       "      <td>0.1384</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.7412</td>\n",
       "      <td>0.5883</td>\n",
       "      <td>0.1671</td>\n",
       "      <td>0.3315</td>\n",
       "      <td>0.2222</td>\n",
       "      <td>0.0868</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.7594</td>\n",
       "      <td>0.6139</td>\n",
       "      <td>0.1898</td>\n",
       "      <td>0.4061</td>\n",
       "      <td>0.2587</td>\n",
       "      <td>0.1371</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.7487</td>\n",
       "      <td>0.6100</td>\n",
       "      <td>0.1898</td>\n",
       "      <td>0.3681</td>\n",
       "      <td>0.2505</td>\n",
       "      <td>0.1177</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.7542</td>\n",
       "      <td>0.6264</td>\n",
       "      <td>0.1870</td>\n",
       "      <td>0.3860</td>\n",
       "      <td>0.2519</td>\n",
       "      <td>0.1256</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mean</th>\n",
       "      <td>0.7505</td>\n",
       "      <td>0.6099</td>\n",
       "      <td>0.1802</td>\n",
       "      <td>0.3693</td>\n",
       "      <td>0.2421</td>\n",
       "      <td>0.1134</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SD</th>\n",
       "      <td>0.0091</td>\n",
       "      <td>0.0234</td>\n",
       "      <td>0.0197</td>\n",
       "      <td>0.0407</td>\n",
       "      <td>0.0260</td>\n",
       "      <td>0.0305</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0       0.7406  0.5879  0.1671  0.3296  0.2218  0.0857\n",
       "1       0.7350  0.5787  0.1473  0.2989  0.1973  0.0601\n",
       "2       0.7632  0.6648  0.2096  0.4277  0.2814  0.1590\n",
       "3       0.7462  0.5984  0.1530  0.3375  0.2105  0.0842\n",
       "4       0.7550  0.6098  0.2040  0.3956  0.2692  0.1397\n",
       "5       0.7613  0.6203  0.1870  0.4125  0.2573  0.1384\n",
       "6       0.7412  0.5883  0.1671  0.3315  0.2222  0.0868\n",
       "7       0.7594  0.6139  0.1898  0.4061  0.2587  0.1371\n",
       "8       0.7487  0.6100  0.1898  0.3681  0.2505  0.1177\n",
       "9       0.7542  0.6264  0.1870  0.3860  0.2519  0.1256\n",
       "Mean    0.7505  0.6099  0.1802  0.3693  0.2421  0.1134\n",
       "SD      0.0091  0.0234  0.0197  0.0407  0.0260  0.0305"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "knn = create_model('knn')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "nSg3OUjuEQpu"
   },
   "source": [
    "### 8.3 Random Forest Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:29:57.875107Z",
     "start_time": "2020-05-02T10:29:55.110784Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 392
    },
    "colab_type": "code",
    "id": "FGCoUiQpEQpz",
    "outputId": "212cb736-6dcb-4b77-e45b-14ad895bff43"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.8064</td>\n",
       "      <td>0.7435</td>\n",
       "      <td>0.3229</td>\n",
       "      <td>0.6196</td>\n",
       "      <td>0.4246</td>\n",
       "      <td>0.3218</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.8076</td>\n",
       "      <td>0.7488</td>\n",
       "      <td>0.3314</td>\n",
       "      <td>0.6223</td>\n",
       "      <td>0.4325</td>\n",
       "      <td>0.3295</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.8170</td>\n",
       "      <td>0.7576</td>\n",
       "      <td>0.3683</td>\n",
       "      <td>0.6533</td>\n",
       "      <td>0.4710</td>\n",
       "      <td>0.3707</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.8139</td>\n",
       "      <td>0.7175</td>\n",
       "      <td>0.3513</td>\n",
       "      <td>0.6458</td>\n",
       "      <td>0.4550</td>\n",
       "      <td>0.3544</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.8026</td>\n",
       "      <td>0.7199</td>\n",
       "      <td>0.2890</td>\n",
       "      <td>0.6145</td>\n",
       "      <td>0.3931</td>\n",
       "      <td>0.2930</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.8114</td>\n",
       "      <td>0.7446</td>\n",
       "      <td>0.3569</td>\n",
       "      <td>0.6300</td>\n",
       "      <td>0.4557</td>\n",
       "      <td>0.3520</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.8008</td>\n",
       "      <td>0.7286</td>\n",
       "      <td>0.3258</td>\n",
       "      <td>0.5897</td>\n",
       "      <td>0.4197</td>\n",
       "      <td>0.3113</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.8070</td>\n",
       "      <td>0.7502</td>\n",
       "      <td>0.3144</td>\n",
       "      <td>0.6271</td>\n",
       "      <td>0.4189</td>\n",
       "      <td>0.3181</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.8114</td>\n",
       "      <td>0.7262</td>\n",
       "      <td>0.3371</td>\n",
       "      <td>0.6398</td>\n",
       "      <td>0.4416</td>\n",
       "      <td>0.3410</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.8063</td>\n",
       "      <td>0.7428</td>\n",
       "      <td>0.3399</td>\n",
       "      <td>0.6122</td>\n",
       "      <td>0.4372</td>\n",
       "      <td>0.3315</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mean</th>\n",
       "      <td>0.8084</td>\n",
       "      <td>0.7380</td>\n",
       "      <td>0.3337</td>\n",
       "      <td>0.6254</td>\n",
       "      <td>0.4349</td>\n",
       "      <td>0.3323</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SD</th>\n",
       "      <td>0.0048</td>\n",
       "      <td>0.0131</td>\n",
       "      <td>0.0216</td>\n",
       "      <td>0.0174</td>\n",
       "      <td>0.0213</td>\n",
       "      <td>0.0217</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0       0.8064  0.7435  0.3229  0.6196  0.4246  0.3218\n",
       "1       0.8076  0.7488  0.3314  0.6223  0.4325  0.3295\n",
       "2       0.8170  0.7576  0.3683  0.6533  0.4710  0.3707\n",
       "3       0.8139  0.7175  0.3513  0.6458  0.4550  0.3544\n",
       "4       0.8026  0.7199  0.2890  0.6145  0.3931  0.2930\n",
       "5       0.8114  0.7446  0.3569  0.6300  0.4557  0.3520\n",
       "6       0.8008  0.7286  0.3258  0.5897  0.4197  0.3113\n",
       "7       0.8070  0.7502  0.3144  0.6271  0.4189  0.3181\n",
       "8       0.8114  0.7262  0.3371  0.6398  0.4416  0.3410\n",
       "9       0.8063  0.7428  0.3399  0.6122  0.4372  0.3315\n",
       "Mean    0.8084  0.7380  0.3337  0.6254  0.4349  0.3323\n",
       "SD      0.0048  0.0131  0.0216  0.0174  0.0213  0.0217"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "rf = create_model('rf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "z6F3Fk7TEQp8"
   },
   "source": [
    "Notice that the mean scores of all models matche with the scores printed in `compare_models()`. This is because the metrics printed in the `compare_models()` score grid are the average scores across all CV folds. Similar to `compare_models()`, if you want to change the fold parameter from the default value of 10 to a different value, then you can use the `fold` parameter. For Example: `create_model('dt', fold = 5)` will create a Decision Tree Classifier using 5 fold stratified CV."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "XvpjzbGQEQqB"
   },
   "source": [
    "# 9.0 Tune a Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "nc_GgksHEQqE"
   },
   "source": [
    "When a model is created using the `create_model()` function it uses the default hyperparameters. In order to tune hyperparameters, the `tune_model()` function is used. This function automatically tunes the hyperparameters of a model on a pre-defined search space and scores it using stratified cross-validation. The output prints a score grid that shows Accuracy, Recall, Precision, F1 and Kappa by fold. <br/>\n",
    "<br/>\n",
    "**Note:** `tune_model()` does not take a trained model object as an input. It instead requires a model name to be passed as an abbreviated string similar to how it is passed in `create_model()`. All other functions in `pycaret.classification` require a trained model object as an argument."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "BQlMCxrUEQqG"
   },
   "source": [
    "### 9.1 Decision Tree Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:34:17.285692Z",
     "start_time": "2020-05-02T10:34:14.987420Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 392
    },
    "colab_type": "code",
    "id": "of46aj6vEQqJ",
    "outputId": "26f7f708-739a-489b-bb76-b33e0a800362"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.8264</td>\n",
       "      <td>0.7219</td>\n",
       "      <td>0.3201</td>\n",
       "      <td>0.7533</td>\n",
       "      <td>0.4493</td>\n",
       "      <td>0.3656</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.8239</td>\n",
       "      <td>0.7259</td>\n",
       "      <td>0.3059</td>\n",
       "      <td>0.7500</td>\n",
       "      <td>0.4346</td>\n",
       "      <td>0.3515</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.8158</td>\n",
       "      <td>0.7548</td>\n",
       "      <td>0.2946</td>\n",
       "      <td>0.6980</td>\n",
       "      <td>0.4143</td>\n",
       "      <td>0.3258</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.8208</td>\n",
       "      <td>0.7171</td>\n",
       "      <td>0.3173</td>\n",
       "      <td>0.7134</td>\n",
       "      <td>0.4392</td>\n",
       "      <td>0.3508</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.8133</td>\n",
       "      <td>0.7178</td>\n",
       "      <td>0.3173</td>\n",
       "      <td>0.6627</td>\n",
       "      <td>0.4291</td>\n",
       "      <td>0.3337</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.8239</td>\n",
       "      <td>0.7359</td>\n",
       "      <td>0.3003</td>\n",
       "      <td>0.7571</td>\n",
       "      <td>0.4300</td>\n",
       "      <td>0.3481</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.8164</td>\n",
       "      <td>0.7197</td>\n",
       "      <td>0.2975</td>\n",
       "      <td>0.7000</td>\n",
       "      <td>0.4175</td>\n",
       "      <td>0.3290</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.8264</td>\n",
       "      <td>0.7408</td>\n",
       "      <td>0.3031</td>\n",
       "      <td>0.7754</td>\n",
       "      <td>0.4358</td>\n",
       "      <td>0.3557</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.8214</td>\n",
       "      <td>0.7158</td>\n",
       "      <td>0.3003</td>\n",
       "      <td>0.7361</td>\n",
       "      <td>0.4266</td>\n",
       "      <td>0.3423</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.8107</td>\n",
       "      <td>0.7322</td>\n",
       "      <td>0.3003</td>\n",
       "      <td>0.6584</td>\n",
       "      <td>0.4125</td>\n",
       "      <td>0.3179</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mean</th>\n",
       "      <td>0.8199</td>\n",
       "      <td>0.7282</td>\n",
       "      <td>0.3057</td>\n",
       "      <td>0.7204</td>\n",
       "      <td>0.4289</td>\n",
       "      <td>0.3420</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SD</th>\n",
       "      <td>0.0053</td>\n",
       "      <td>0.0120</td>\n",
       "      <td>0.0087</td>\n",
       "      <td>0.0384</td>\n",
       "      <td>0.0111</td>\n",
       "      <td>0.0143</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0       0.8264  0.7219  0.3201  0.7533  0.4493  0.3656\n",
       "1       0.8239  0.7259  0.3059  0.7500  0.4346  0.3515\n",
       "2       0.8158  0.7548  0.2946  0.6980  0.4143  0.3258\n",
       "3       0.8208  0.7171  0.3173  0.7134  0.4392  0.3508\n",
       "4       0.8133  0.7178  0.3173  0.6627  0.4291  0.3337\n",
       "5       0.8239  0.7359  0.3003  0.7571  0.4300  0.3481\n",
       "6       0.8164  0.7197  0.2975  0.7000  0.4175  0.3290\n",
       "7       0.8264  0.7408  0.3031  0.7754  0.4358  0.3557\n",
       "8       0.8214  0.7158  0.3003  0.7361  0.4266  0.3423\n",
       "9       0.8107  0.7322  0.3003  0.6584  0.4125  0.3179\n",
       "Mean    0.8199  0.7282  0.3057  0.7204  0.4289  0.3420\n",
       "SD      0.0053  0.0120  0.0087  0.0384  0.0111  0.0143"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "tuned_dt = tune_model('dt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:34:20.509989Z",
     "start_time": "2020-05-02T10:34:20.506531Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "__anDkttEQqV",
    "outputId": "7cf46ace-012a-4131-b8b8-370f9d4a63cb"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "DecisionTreeClassifier(ccp_alpha=0.0, class_weight=None, criterion='gini',\n",
      "                       max_depth=3, max_features=78, max_leaf_nodes=None,\n",
      "                       min_impurity_decrease=0.0, min_impurity_split=None,\n",
      "                       min_samples_leaf=3, min_samples_split=2,\n",
      "                       min_weight_fraction_leaf=0.0, presort='deprecated',\n",
      "                       random_state=123, splitter='best')\n"
     ]
    }
   ],
   "source": [
    "#tuned model object is stored in the variable 'tuned_dt'. \n",
    "print(tuned_dt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "CD-f0delEQqq"
   },
   "source": [
    "### 9.2 K Neighbors Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:34:49.509779Z",
     "start_time": "2020-05-02T10:34:26.920267Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 392
    },
    "colab_type": "code",
    "id": "xN1nYwFXEQqv",
    "outputId": "e4ab669d-bee0-4a9d-f5c7-2ed07ec613b9"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.7738</td>\n",
       "      <td>0.6494</td>\n",
       "      <td>0.0708</td>\n",
       "      <td>0.4310</td>\n",
       "      <td>0.1217</td>\n",
       "      <td>0.0632</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.7769</td>\n",
       "      <td>0.6662</td>\n",
       "      <td>0.0652</td>\n",
       "      <td>0.4694</td>\n",
       "      <td>0.1144</td>\n",
       "      <td>0.0640</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.7838</td>\n",
       "      <td>0.7061</td>\n",
       "      <td>0.1161</td>\n",
       "      <td>0.5541</td>\n",
       "      <td>0.1920</td>\n",
       "      <td>0.1250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.7769</td>\n",
       "      <td>0.6407</td>\n",
       "      <td>0.0623</td>\n",
       "      <td>0.4681</td>\n",
       "      <td>0.1100</td>\n",
       "      <td>0.0612</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.7769</td>\n",
       "      <td>0.6507</td>\n",
       "      <td>0.0708</td>\n",
       "      <td>0.4717</td>\n",
       "      <td>0.1232</td>\n",
       "      <td>0.0694</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.7788</td>\n",
       "      <td>0.6858</td>\n",
       "      <td>0.0878</td>\n",
       "      <td>0.5000</td>\n",
       "      <td>0.1494</td>\n",
       "      <td>0.0892</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.7807</td>\n",
       "      <td>0.6516</td>\n",
       "      <td>0.0765</td>\n",
       "      <td>0.5294</td>\n",
       "      <td>0.1337</td>\n",
       "      <td>0.0824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.7845</td>\n",
       "      <td>0.6591</td>\n",
       "      <td>0.0935</td>\n",
       "      <td>0.5789</td>\n",
       "      <td>0.1610</td>\n",
       "      <td>0.1060</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.7769</td>\n",
       "      <td>0.6565</td>\n",
       "      <td>0.0652</td>\n",
       "      <td>0.4694</td>\n",
       "      <td>0.1144</td>\n",
       "      <td>0.0640</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.7812</td>\n",
       "      <td>0.6807</td>\n",
       "      <td>0.0935</td>\n",
       "      <td>0.5323</td>\n",
       "      <td>0.1590</td>\n",
       "      <td>0.0995</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mean</th>\n",
       "      <td>0.7791</td>\n",
       "      <td>0.6647</td>\n",
       "      <td>0.0802</td>\n",
       "      <td>0.5004</td>\n",
       "      <td>0.1379</td>\n",
       "      <td>0.0824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SD</th>\n",
       "      <td>0.0032</td>\n",
       "      <td>0.0192</td>\n",
       "      <td>0.0163</td>\n",
       "      <td>0.0442</td>\n",
       "      <td>0.0253</td>\n",
       "      <td>0.0209</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0       0.7738  0.6494  0.0708  0.4310  0.1217  0.0632\n",
       "1       0.7769  0.6662  0.0652  0.4694  0.1144  0.0640\n",
       "2       0.7838  0.7061  0.1161  0.5541  0.1920  0.1250\n",
       "3       0.7769  0.6407  0.0623  0.4681  0.1100  0.0612\n",
       "4       0.7769  0.6507  0.0708  0.4717  0.1232  0.0694\n",
       "5       0.7788  0.6858  0.0878  0.5000  0.1494  0.0892\n",
       "6       0.7807  0.6516  0.0765  0.5294  0.1337  0.0824\n",
       "7       0.7845  0.6591  0.0935  0.5789  0.1610  0.1060\n",
       "8       0.7769  0.6565  0.0652  0.4694  0.1144  0.0640\n",
       "9       0.7812  0.6807  0.0935  0.5323  0.1590  0.0995\n",
       "Mean    0.7791  0.6647  0.0802  0.5004  0.1379  0.0824\n",
       "SD      0.0032  0.0192  0.0163  0.0442  0.0253  0.0209"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "tuned_knn = tune_model('knn')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "KO3zIfs-EQrA"
   },
   "source": [
    "### 9.3 Random Forest Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:35:04.506133Z",
     "start_time": "2020-05-02T10:34:49.722484Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 392
    },
    "colab_type": "code",
    "id": "gmaIfnBMEQrE",
    "outputId": "a59cebfa-f81e-477c-f83c-e9443fd80b0f"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.8289</td>\n",
       "      <td>0.7871</td>\n",
       "      <td>0.3484</td>\n",
       "      <td>0.7410</td>\n",
       "      <td>0.4740</td>\n",
       "      <td>0.3873</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.8227</td>\n",
       "      <td>0.7990</td>\n",
       "      <td>0.3513</td>\n",
       "      <td>0.6966</td>\n",
       "      <td>0.4670</td>\n",
       "      <td>0.3743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.8221</td>\n",
       "      <td>0.8251</td>\n",
       "      <td>0.3824</td>\n",
       "      <td>0.6716</td>\n",
       "      <td>0.4874</td>\n",
       "      <td>0.3894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.8227</td>\n",
       "      <td>0.7740</td>\n",
       "      <td>0.3626</td>\n",
       "      <td>0.6882</td>\n",
       "      <td>0.4750</td>\n",
       "      <td>0.3804</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.8227</td>\n",
       "      <td>0.7795</td>\n",
       "      <td>0.3513</td>\n",
       "      <td>0.6966</td>\n",
       "      <td>0.4670</td>\n",
       "      <td>0.3743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.8239</td>\n",
       "      <td>0.7918</td>\n",
       "      <td>0.3598</td>\n",
       "      <td>0.6978</td>\n",
       "      <td>0.4748</td>\n",
       "      <td>0.3817</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.8202</td>\n",
       "      <td>0.7536</td>\n",
       "      <td>0.3343</td>\n",
       "      <td>0.6941</td>\n",
       "      <td>0.4512</td>\n",
       "      <td>0.3591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.8302</td>\n",
       "      <td>0.7935</td>\n",
       "      <td>0.3569</td>\n",
       "      <td>0.7412</td>\n",
       "      <td>0.4818</td>\n",
       "      <td>0.3948</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.8214</td>\n",
       "      <td>0.7649</td>\n",
       "      <td>0.3541</td>\n",
       "      <td>0.6868</td>\n",
       "      <td>0.4673</td>\n",
       "      <td>0.3729</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.8138</td>\n",
       "      <td>0.7824</td>\n",
       "      <td>0.3598</td>\n",
       "      <td>0.6414</td>\n",
       "      <td>0.4610</td>\n",
       "      <td>0.3590</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mean</th>\n",
       "      <td>0.8229</td>\n",
       "      <td>0.7851</td>\n",
       "      <td>0.3561</td>\n",
       "      <td>0.6955</td>\n",
       "      <td>0.4707</td>\n",
       "      <td>0.3773</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SD</th>\n",
       "      <td>0.0043</td>\n",
       "      <td>0.0186</td>\n",
       "      <td>0.0116</td>\n",
       "      <td>0.0279</td>\n",
       "      <td>0.0098</td>\n",
       "      <td>0.0113</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0       0.8289  0.7871  0.3484  0.7410  0.4740  0.3873\n",
       "1       0.8227  0.7990  0.3513  0.6966  0.4670  0.3743\n",
       "2       0.8221  0.8251  0.3824  0.6716  0.4874  0.3894\n",
       "3       0.8227  0.7740  0.3626  0.6882  0.4750  0.3804\n",
       "4       0.8227  0.7795  0.3513  0.6966  0.4670  0.3743\n",
       "5       0.8239  0.7918  0.3598  0.6978  0.4748  0.3817\n",
       "6       0.8202  0.7536  0.3343  0.6941  0.4512  0.3591\n",
       "7       0.8302  0.7935  0.3569  0.7412  0.4818  0.3948\n",
       "8       0.8214  0.7649  0.3541  0.6868  0.4673  0.3729\n",
       "9       0.8138  0.7824  0.3598  0.6414  0.4610  0.3590\n",
       "Mean    0.8229  0.7851  0.3561  0.6955  0.4707  0.3773\n",
       "SD      0.0043  0.0186  0.0116  0.0279  0.0098  0.0113"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "tuned_rf = tune_model('rf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "IqxEZRi1EQrO"
   },
   "source": [
    "The `tune_model()` function is a random grid search of hyperparameters over a pre-defined search space. By default, it is set to optimize `Accuracy` but this can be changed using `optimize` parameter. For example: `tune_model('dt', optimize = 'AUC')` will search for the hyperparameters of a Decision Tree Classifier that results in highest `AUC`. For the purposes of this example, we have used the default metric `Accuracy` for the sake of simplicity only. Generally, when the dataset is imbalanced (such as the credit dataset we are working with) `Accuracy` is not a good metric for consideration. The methodology behind selecting the right metric to evaluate a classifier is beyond the scope of this tutorial but if you would like to learn more about it, you can __[click here](https://medium.com/@george.drakos62/how-to-select-the-right-evaluation-metric-for-machine-learning-models-part-3-classification-3eac420ec991)__ to read an article on how to choose the right evaluation metric.\n",
    "\n",
    "Notice how the results after tuning have been improved:\n",
    "\n",
    "- Decision Tree Classifier (Before: **`0.7294`** , After: **`0.8199`**)\n",
    "- K Neighbors Classifier (Before: **`0.7505`** , After: **`0.7791`**)\n",
    "- Random Forest Classifier (Before: **`0.8084`** , After: **`0.8229`**)\n",
    "\n",
    "\n",
    "Metrics alone are not the only criteria you should consider when finalizing the best model for production. Other factors to consider include training time, standard deviation of k-folds etc. As you progress through the tutorial series we will discuss those factors in detail at the intermediate and expert levels. For now, let's move forward considering the Tuned Random Forest Classifier as our best model for the remainder of this tutorial."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "w_P46O0jEQrT"
   },
   "source": [
    "# 10.0 Plot a Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "FGM9GOtjEQrV"
   },
   "source": [
    "Before model finalization, the `plot_model()` function can be used to analyze the performance across different aspects such as AUC, confusion_matrix, decision boundary etc. This function takes a trained model object and returns a plot based on the test / hold-out set. \n",
    "\n",
    "There are 15 different plots available, please see the `plot_model()` docstring for the list of available plots."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "euqkQYJaEQrY"
   },
   "source": [
    "### 10.1 AUC Plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:38:13.143789Z",
     "start_time": "2020-05-02T10:38:12.872756Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "RLbLqvkHEQra",
    "outputId": "fe40b5e3-6375-43e8-e97d-1d487e02eb2d"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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hJtuugmAQYMGERoayrZt2wL/X7NmDUOGDOEPf/jDae/3/fffc/fdd6NSqVCpVEydOpW1a9dy/fXXt4inLaWlpUyaNCnw2rVaLU888QSDBg0C4M033ww8ex80aBAul4vKysrAHwnH7tG3b19cLhfV1dVs3ryZ0aNHo9frAZg8eTLfffcd0PxM+u233waaW0LGjx/P2rVrA7XecePGAZCcnExCQgLdu3cHIDExkfLy8kDcv/71r1vUiuPj4/nnP/952usfey/O5TPYuHFj4H42mw1Zls/4d+XJJ58MtKLEx8cTHh5OUVERAwcORJIkFi1axLXXXhtIth6Pp83yM7FixQrGjh1LZGQkALfddhs///nPeeyxxwAYPnx4qxYF4fIjErvQad5//32ioqKoqalh0qRJTJkyBZWq+VcyKiqKioqKNs+rqqoiNDQUj8fDmjVrzvh+UVFRZ3V8W06s7Y8fP57//ve/JCQksHXrVl5++WVyc3Px+XxMmTIlcJzNZqOuro7JkydTX1/Pq6++yqFDh7juuut4/PHHT9lpr6amBrPZHNg2m81UV1e32D6ZYzVQgNWrV/PHP/6R8ePHB/avXr2at956i9raWiRJQpZl/H5/YL/RaAQIdHD0+/3U19cTEREROMZkMrWI9cRtk8nU4jM89seAQqEI/Hzs+ife989//nMgWf/ve3Gq6x/7bBoaGs76MziR1WpFrVZTXl5ObGxsqzj+165duwK1dIVCQWVlJX6/H7VazXvvvcff//53Xn/9dVJSUnj66adJSUk5afnpNDY28s0337Bp0yaguZXixFaWU/0+CJcP0RQvdLrQ0FDuvPNO/vznPwfKMjMz+fbbb1sdm5ubS11dHf379ycjI4Pdu3e3qO1B8xf7q6++GqiNHnMmxysUihZJpq6u7qRxT5w4kVWrVrFmzRoyMzMxGAxERESg1+tZsWJF4L81a9YEEur06dNZuHAhX331FXv27GHJkiWnfG+sVmuLGOrq6s6pZ/SoUaOIioriww8/BJprjb/4xS944IEHyMrKYtmyZUiSdNrrmEwmGhsbA9s1NTXtHuvJnOn1z/czUCgUpKens3LlylbXfu+99zhy5EiLsl//+tdMnDiRrKwsVqxY0aKlqU+fPrz22musX7+eK664gqeffvqU5acTERHBjTfeGHhdWVlZ/Pjjj2d0rnD5EIld6BJmzpzJtm3bAjWRqVOn4vP5eOGFFwI1kpKSEn7729/y0EMPERwcTHx8PFOnTmXOnDlUVVUBzV/2c+bMCdRCT3Qmx4eHhwc6hG3btq3Vl/iJMjIyqK6u5vPPPw80p8bGxhIVFRWoKdfU1DBnzhwcDgdvvPEGixYtAiAyMpK4uLjTJtPRo0ezaNEifD4fDoeDpUuXMnr06LN6b4959NFHeeutt6ivr6epqQmHw0GfPn0AmD9/Pmq1GrvdfsprpKens2bNGpxOJ01NTYHXeSzWTz75JPC6V65cecpHBWfrTK9/Lp+BSqXC4XAEOvH94he/4O9//3sgacqyzIcffsj8+fMDLRnHVFdX07dvXyRJYvHixTQ1NWG328nJyeH//u//cLvdaDQa0tLSkCTppOVn4uqrr2blypWBP6i+/fbbFp0IBQFEU7zQRRgMBu677z5efPFFFi1ahFKp5N133+Xll19m8uTJqFQqNBoNd955JzfffHPgvN///ve89dZb/PSnP0WSJNRqNddddx2zZs1q8z6nO37mzJnMmTOHH3/8kSFDhjBixIiTxixJEuPGjWPhwoW88sorgbJ58+bxzDPP8Ne//hWFQsHMmTMJDg7m+uuv5/HHH+ef//wnkiQxYMCAwHPsk5kxYwZFRUVcc801SJLEpEmTzrljVEZGBunp6bz11lv89re/5Z577mHq1KlERUXxwAMPMG7cOO655x6ysrJOeo0xY8bw/fffM3HiRKxWK6NHjw50YHv00Ud55plnmDRpEgqFgtmzZ9O/f/9zirUtZ3r9c/kM3G43ZrOZkSNHsnjxYgYNGsS8efN47bXXePbZZ1EqlfTt25cPPvigVd+PRx55hNmzZxMeHs706dO59dZbefzxx1m4cCFxcXFce+21qNVqgoODefrpp0lOTm6z/Ez07duX+++/P9BrPiws7Iz6agiXF0n+3/ZKQRAEQRAuWqIpXhAEQRAuIR2a2HNzcxk3bhwLFixotW/dunVMmzaNW2+9lTfeeKMjwxAEQRCEy0aHJXaHw8Gzzz570ok/nnvuOV5//XU++ugjVq9e3WqiDkEQBEEQzl6HJXaNRsM///nPFmNejyksLMRsNhMdHY1CoQhMMSkIgiAIwvnpsF7xx2bKaktlZSWhoaGBbavVSmFh4Umv5ff7sdvtqNXqMx4WIgiCIAgXs2MTEOn1ehSKM6+Hd8pwt7Y64p8qYdvtdnJzczsyJEEQBEHokpKTk1vNn3AqnZLYIyMjAxOEQPNCFuHh4Sc9Xq1WA80vrqusmX0p2r17N2lpaZ0dxiVPvM8dT7zHHe9CvMey7KfJY8fuqsXhakCl1BAbkgxAta2EPcU/0uSxoVKo8fm9NDir0KoNTEi7n33lDVQ35lPT+E2b1355dTc8sh5zkJMHhx5s85i3N8VxqFZHstXO7f3KUCtlFJKMJIEkgccrUdMUhFnrQav2nd1rw4JaAVpNN+JCU4m1WJB8Pm687iZcLhdLl3+O2RBKbm5uIAeeqU5J7HFxcdhsNoqKioiKiuK7777j5ZdfPunxx2rzGo1GLHDQwcT7e2GI97njife4453qPfb5vfj8XtxeJ37Zi0nXPP1vSV0eNbZibK46/HLz9M02Zw1B6mBGp9wGwO6iH9hyuPXSswpJjTX0flbsK6abpZRQzb7APrdPid0toddUEvL7RchIxBidTE5WYwzyUdIQhE+W8PvBJ0vk1/tweOyM6aHim/xoFJKERimDbCfF6qDGnc6kfnGEBGvQ+j9EwoUMBNK3DCgh1NA8W6PnaEO0WRdBfGhvoixJSLRsidaotFgN8a1aqH0+X2BNhsceewy9Xk9cdCIulws4dYt2Wzosse/evZsXX3yR4uJiVCoVWVlZXH311cTFxTF+/HieeeYZfvnLXwIwZcqUwEpPgiAIQtfl83txeRw4/fVU2YqQZT/hxgT8so/swys4UL4Ft7epxTkh+miuT3+E/OpGth/ZRr09u9V1ZRle/tGEDy2Opjx+lgEOt4I6l4pah5r9VXpkGb4+0LxccrDah1nbA4dbSYNLhXxCEo0x6UgNlxkaD9HGOJSSm6QwF0aNH43SwbCedxBhjECpcPPRhj+2ikVCon9sBTZnDrWOsjbfh7iQFPrGXkmIPqp5WmKFBqXi7FKqLMvMmzePFStW8NVXX6FWq087G+WZ6LDEnpaWxvvvv3/S/ZmZmYF5nwVBEIQLQ5b9ONwNgIQ+qHk1uIamagqqd6OQFPhlH26vE6fHhkqhYWiP6wDILdvMurzPWlzrwPaVKCQlw5Ifo8njpdquwOWVaPKEIOPG7dNwqMaL2+vgJwua80GM0UmKNYpyW3MNusGlwuOTcHkVNLqPLSoUzOqCvgCM6RlJsEaFUi1R3+Rm2gAdiRY1qeEQYwKtyo1J68XjdeD02BjW43qC1MEU1+byzZ5/t4jX7wcvatQKG16fhvL6ImJDUlArNXi8LpAkimtzkJEprNnX4lxDUAgDE8bRIyKj3TpxS5JEfn4+JSUl5Ofnk5yc3C7XFXPFC4IgXMSa3I043A3YXM0r33l9Lrx+DylRQwHIr9zB/tIN+GQvVY3HRx+ZdeHcOKi51fRQ5Ta2H2m9mqJCCmZjcS90GhWyrxYVoTg9Xuqc0OjyUlCnw+OTmPn5EgjUmE/e+ton0oxaGcJVKQnIMkSbdCSG6FEpFfj9MrHmYExaNRadkoamYkrrDmJ31eHxuVApNYxKviXwmn7I+Yiy2tb3GJBwNS5vE0U1OVgNcXh8buqbKlApgvD6m9+b/034bUlPGE+kuTuW4AiCVMFIUvuMDvd6vfzwww+MHTsWgLlz5+L3+1ssCX2+RGIXBEHoonx+Lw1N1dQ6ynB7myis2UtIcBSDuzevNb8691MOVmxtdZ5RG0ZCaF90GgNNHhvlDfkABGtMeHxutOpg4sP64PH52VVay5r8IFRSBnvKmthd5qHa4aHRpaLRpaTeteWEK0e3uteQhDAy46FXuIlIoxYArUrJuORoLDoNUUYdkUZti1qu1+emvqmSJrcNl7cMsy4CqzEOgH0l6/l293L8csvOaApJyRW9piFJCkL0UfSJGYlWbUSn1qPVGNEog6i2lbBk61/afC+9fhchwVH4ZC8SElZjPC6Pg3BjPBqV9uhREmGGWEL1MaiUZ9dh7Uw9/PDDfPLJJyxdupRRo0ZhMpna/R4isQuCIHQSWZZxeR3U2Es4WLGNxqZqpgx4AIDcsk2sy/u81TnFtbmBxB4XkkpFw2GMWismXRhBqmB0GgMKSYla1dyxrWfEIMIMKTR5NVTa3ORUNvDRrkIW7zoCfPA/V1cAQUf/g4QQPb8c05PQ4CAsOg1KhYRSIWHRagiuK2L4kMzTvka/7Ask9d1FP5BbvpmGpmqae581M2rDuCHjUZQKFUqFilB9NOHGBCJM3dCoglBIKhqaqvh443NYgiMD55U35KNUqJEAr9/T4r6W4Ah6R48k0twdkzYMSVJ0iXlQ7r33XiRJ6tARBSKxC4IgdBCvz01hzT6a3I3U2EvJ6DaRYI0Jh7uRTzf9qc1zqhqLsBrjMOvCCdVH4/Y6iQtNxRBkwRIcRajheK25e3h/uocfX7q2vslNVk4JX+4t5os9n6HXqChpaGrrNgE9wowMjA1hWGI4faLMWHQa+kZaMGpPXWPNzi5ps7zRWUNZ/SHK6/OpaCzAaojjypTpQPNjA7urHqsxDqshlmCNBa06GK1aH5jfJCliIBKwMf8L9pWua3X9Y60Px/j8HsL0sQA0OKvoEzOSbtYBhOgjW53bGXJzc3nqqad47bXXiIiIICMjgzfffLND7ykSuyAIwjnyyz4amqpxeexIkpIIUwKldXmszl2Iw13f6vgYSy+SIgaiUqgJ1phw+5wEq01YjXHogyzEh/YmzNCcpCLN3bku/ZGT3ntvWR1f7Svm3U157K9oaPOYeqcHpULC55cZ0S0cnVpJemwoJq2a+4YnY9UHnVUtVpZlnB47dlcd9b4iyhvCiDR1A2BL/tfkV23H7jr+utXKIBSSMrA9qNtkBne/psU97a46fsj5iFX73kdCQqblBGZGbSgxlmTcviYswZEkhQ/EqA3lYvHdd9+xcuVKFi9ezOzZsy/IPUViFwRBOMrtddLQVInX78Hr9+Bw1aOQlOiDzERbegKwr2Qte0vW0eisbnFuUvhALMERRJl70CtyMEeq9+DyOgjWmLAa44kNSSbCmAg0j2e+ZcjvzigmWZapbXLzzoY81h2uYPneYvxtzN4JYNFpSAzRMyk1him940iPDUEfdPbPip0eO7Iso9MYANic/xWHq3bg9Njx+b2B41SlzkBiVyqUgESUOYnEsL5EmLoToo9CcbTTWaOzBpfXQV55NvtL214bREYm3JhAta2YQd0m0c3aP9Bz/2Jy+PBhEhISUCgU3HvvvfTu3Zsrr7zygt1fJHZBEC4LVY1F2N311NpLkWUZu6sOt89JpKk7fWOvwOtzs3TbX1rUOI9JDOsbSOzVtpIWST3CmEiEqRv6IAtKhQpJkkhPHE964vgziqva7mJlTgl1TjcFNXZKG5pYkH0IQ5AKr0/G6W17RjONUoFPlnn1xkx+0i+BSKPuHN4VaGiqotFZQ3l9PnWOchpdtdTZy+gTO4rMo8/y7a5a7K56zLpwzLpw9NoQ6iptJEcdf8aenjiB9MQJLa59sGIbRbX7ya/c0ea9gzUmdGojCoWSwd2mEGnudk6voSvJyspi5syZ/P73v+eBBx5AoVBc0KQOIrELgnAJqLWXUVKXh91Vh0KhJN+1lyPZ3xMXkkJm0rUAbDi4lCpb68WmVIrmGq1KqSElajiFNXuxBEdi0Ibg83vRqfVYgqMCx2cmXUNm0jUEqYLPKDavz8+WomryqhpxuL18saeI7KJqdGolhXUOfP62a982l5fM+DDUSgXF9Q56Wo30jbJw/4hkellNKBRn3xGs1l5GRWMBeo2ZuNBUANblfU5Z/aEW70eoIQaL7vg038N63MDwnj8hSHX8j4fs2myizEmt7uH2Oskr38Km/OWt9lmCI4m19CLUEEuPiPSzjv9ikJGRQWJiIvHx8Z0Wg0jsgiB0aYU1+8gp3YDTY0epUFHZWIhOY8SktTKx3z0A7CleTV7F/8xm1gQubxODuk9BISlIi7uS0rqDhBliUEhKQvXRBAeZUSmPrz/RP/4q+sdfdcp4TpfQZVlm05Eq3t10kGV7CilvdJ7yeIUk4ZdlnhjXjyijjrRoC6HBGtKiQ0553pmSZT8F1XvYUbiKWnspAKnRwwOJvUd4OlHmJAxBIURbehKsMbV67q5V69t8nV6fh0ZnNW6vk8rGAvIqsqlzVLQ4Lkil55oBD2DUhrbbWPCuxO/3849//IPMzEwGDRpEeHg4a9euPavV2NqbSOyCIHQar8/DgfIt+GUv1bZi6puqUCnUlDfkc9fI55GRqWgooKg2J3COUqHC7qoj5IRadI+IDCzBkWhUOnQaIwUHixk8cCgaVXDgGW83az+6Wfu1+2vw+2UKam18l1fOzz/fiMvrb/O4GYOTSAjR0yvcRFqUhd6RZoJUyjaPPR8erysw1K2wei9bC1ZS6yhDQkF8aG9iLMmBDnoAvaJOP2RNlv3kVWylpO4ABVV7MGpDqHdWsnv9opOekxo9nCFJUwPv/6Vq+/bt/O53v2PEiBEsX97cStGZSR1EYhcEoYM1uW14fC68fjc2Zw0VDUfoZu2H1RhHnaOMjYeWtjqnuWZ+hAhTIr0iB6NSauhu7Y9RG9ZmL+5oSw+iLT0C2xX5drRqQ4e8Hr9f5r8HSvlqXzGLdx2hsM7R5nF3D+lJemwos0f0QiFJHTKG2uN1cahyO7WOUmzOOmrsJUiSgmmDH0OSJLx+D7WOMsIMcYxKvgVLcMRpr+mX/ZTUHqCy8Qi7in5Aq9a36uFf31SJkiB8uIg0dUerDsaoDUOnMR4df57Y7q+1K/H7/bhcLnQ6HRkZGfztb39j/Pgz61NxIYjELghCu/DLfpxuG16/G5POSl55NhsOLsXrd7c61u1zYtaFE6KPpk/MSNTKICJM3dCpDZiCwwPPvQFMOisD4q/u8Pgdbi+Ha2z4ZBm/LOPzN/+3Nr+CXaV1mLRqmjw+/rnhQJvnj+0VxbDEcB4cmUKU6dw6sp2KLMvUOcoJ0Te3VBys2Maa3E9bDA/TqvWEG2Jx+5wEqXQkhqVx54jnUEjKNv+w8Pjc+PweQOb7/R9SXn8YmZYtDg5388gAv+ynR0Q6PSMGEWnuzrat2xg0aFC7v86urqqqipkzZ5KYmMjf/vY3AG6//fZOjqolkdgFQTgnNmcdeRVbcHpsHK7ahdPTvHxllDmJCWmz6Bk5CKM2lB2FqwjWmFAq1Lh9TZh14URbegaai4ckTb3gsTd5vJQ3Otl0pApZhvlbDpK1v+0JV07mrsweTEqNYXSPyHPukX4yLo+D4tpcXF4Hbp8Tu7OO/KodeHwufjrsD6hVQRi0IYSbEokwJdLN2g+jNqxF5zYAhaJlU39FQ/Nz8Mamakrr216D/JiEsL70CE8nwpSITmNs19d3MTObzdhsNurr6/F4PGe9VvqFIBK7IAit+GUflQ1HqLYV0+SxUWMvxe6qo85RwV0j5yJJEtW2ojYXDjFprUg0P2OMNHdngnnWhQ4/QJZlmjw+9lfUs/pQBXO/3UWD04Pb1/ZzcIAHR6agVEgoJFBKChpdHoI1Sm7sl0CIToNGpaSX1XjeTet+v48GZzU2Zy11jnLsrjoyk65FISmoc1TwY+7HLY5XSEpiLMk43A2YVeFEmroxpf/9Z3Qvn9/L++uebHOfWReBJTgct9dJn9hRxB/tVCccd+TIEXJychg/fjxqtZolS5ZgMrXuZNhViMQuCJcZWfZT2VhIecNhAIprc3B5m6h3VHJd+sNYgiNxeux8vevtNs8vqTtAbEgyIfpohvW4Hp3aiElnxawLb1VD7Awen59PcmpYULiZ11bvP+lxo3tEUtrQxKyhPTHrNOjUSn6a0b3Dv6yrGovYXfwjxbW5eHwte8ynxY1GH2Qm1BDNgPixRzsEatFpjJh14We93jc0Tzbz8cZnA9thhlgyu1+DJTjy6KplXTM5dRUul4vJkydjs9nYsmUL4eHhmM1de9IckdgF4RLTPO2njTpHBU2eRmpspTQ6a+gVNZi4kBRkZL7a+Vab51Y0FGAJjkStDCI5aghKSYXVGI9RG4YhyIJWYwj0cjbpwjDphl/Il3ZadU1uwp785OhWWaB8dI9ICmpt/HpMGhNSokkK6/imZZ/fS3nDYWrtpdTayxjR6ycoJCVev5vDVTsxBIXQzZpGsMZMqD4agzYkMKxMrQw64wlu/pfdVU9lYwGldYcIUuvYWfhdYN81Ax4i3Nh546svJrIsI0kSQUFBPP300wBYrdZOjurMiMQuCBcpWfZTYy+jsvEIQargwGIgi7a8iP3o2twnkiSJuJAUFJKStNgr0WmMaFQ6DEEhmHXhBAcdXz5SrQxiRM+fXLDXcq4KamysOzn6wwAAACAASURBVFxJvdPDsyt3UtZ4fMGTn1+RwvVp8VyZFIlKeWGGHzncjRys2EpJ7QFK6/Na7EuLG40lOIIIYyI3ZDyKWRdx/s35sp/Sujw8PicFVXvIr2p7hjeAawf8PLA0qnBysiwzf/58lixZwqJFi1CpVNxyyy2dHdZZEYldELowv+zD5/ehVKhQSApcXgcFVbvZXfQjDc6qwHHR5p7EhPRsTvDW/hyq3E5sSAoen4uE0D6olRpCTxi7fGzZz4tRaYODYX/9mqL6toeZAbx8ZTyPXj+kQ+Pw+twUVO+htC6PoT2uQ60MwuVxkH34awBCgqOIMHUjypxEqD4aoy4MaO7QduLSo2fL43OTU7qealvJKRP5oG6TMOvCCVLpCQ4yYtSGnfM9LyeSJLFp0ya2b99OTk4Offv27eyQzppI7ILQRbi9TvKrdlDRUIDdVddims8bMh7FEhxJQ1NVizW6NUotIfpokiIGolE294ge3H3KRZ24/5csy/x4qIJfLN7MztLaVvtTI0zcntGdcIOWIQlWBsaGkp2d3caVzp/X56baVkxO2SZK6nIDIwF6x4wkzBCDJTic0Sm3YTXGtWsidXud/JDzEcUnTNRzoh4RGYQZYjEEhRAXmnrJTwrT3mRZZsuWLWRmNk/WM3fuXJ588kliYmI6ObJzIxK7IFwgdY4K6hxlHHatpmTbOhqc1WjVetITJ5AUPgC318n6vMWtzgvTx6I8Oq47VB9DavRwYkNSiDJ1DwwZuxTtL6+n70vL2twXYdCSNXsc/WPaZ9rVk/H6PSDLqJQanB47n2x8LjBuXKvW0zd2FEnhAwNjyyVJQffwAed1z4qGIxysyKbKVky1rejoGPKWC8GYtFaSo4YQG5KMJTjikpyq9UJ67LHH+Ne//sUXX3zByJEjsVgsWCyWzg7rnInELgjtxOV1kF+5g3pHJTX2EjSqYMKN8fSPHwPAN3v+ffzZd3NFD4/Pif/oMpgGrYX+8WPQayyEG+MJ0Ue1+sJWKlQM63H9BXtNF9rX+4q59l+rCNFpqG1qObHNDf3i+dVVfRneLfwkZ58/m7OOisYCqhqPUFizn0ZnNVem3EZS+AC0aj3xob3Ra0OINicRH9rnvJ6RO9yNFFTtoqKxIDD/fHFtDo3OmhbH+WUfYfrmSWeGJl1HXGjKeb1GobWbb76ZgoICEhMvjRnzRGIXhLPk9NhodNZQ0VBA39hRQPPKYSdbY/qYfnFXUdFwGHutj5EDJra5KEZG4sQOi7urWplTwrzv91JQaye3sgGA2iY3/aND2FVWS/2fpp/TmuJn4ljPZ6/PTdbuf1HZeCSwT6XUYDXGI3E8eV/dZ8Z53+9gxVbWHFh42mPH9ZkpkngHKSkp4Q9/+AN/+tOfsFqtZGZm8sknn5z+xIuESOyCcBoen5uth1dQ3nCY+qbKo1NwNksI64NRG0Z8aG+KavYTYUpEqVDTN/YKdGojauXxpvLU6GGkRg8jOzsbk+7iGDbTUUrqHaS9tIx6p6fN/U0v3o6mAxZIgebPc0/xjxyq3E5K1DD6xl6BSqlBpzESG5JMjKUXZl0EkeZuLT6/cyHLMiBT31TJN3vebTVaQavWk5E4kVB9TGCMulrZPKuc0HGWLVvGwoULSUlJYc6cOZ0dTrsTiV0QaP6yP1y1kwPlW9AotRTX5pCeOJH+8VeRX7md0vqD1DnKA8dHmroTF9o8dAwgNiSZaZmPdVb4F4W6Jjf3L9zAwh0FrfYlhOhZ8NMrGBATgqGDaucA+0s3kFu2kRp76dFEenye9atSbw98nufDL/vYU7yGfSXrWi2eckx8aB+uSr39nCacEc5NZWUlYWFhKBQK7r33XmJiYpg69cJPZ3whiN8q4bKXX7mDH3I+alVecXRmtuSoIYQZYml0VpMQ1rddvvwvJxsLKhnx2opW5eGGIDb/4hriQ1qv9d0e/H4fkiQhSQrKGw6zcvc7gdaWbtZ+DO95Y4u11c/lcy2s3kuNvZTKxiM0OGuwOWtadXQDCDPEoVKoGJgwvsUqdMKFsXr1ambMmMETTzzBPffcg1Kp5LrrruvssDqMSOzCZaPWXk5Z/UFszhr2lKxhZM+b6BWVSZQ5CYAgVTC9ojJJjRqOVqNvscJYmCG2xRrWwul5fX5ueu8Hlu8tCpSlRpi4LaM7T47v32H3PVy1iwPOlexet4gbB/0Sk85KsMaESWdFrzGTGj38vJ9de3xuPlj/1CmP6RkxiCFJU9GotOd1L+H8JScnYzKZCAq6dEeRnEgkduGS5PN7USpU+GUfWw9nsbv4x1bHrM37nB6Rg9BpjPx0+B/O+3mqAF/uLeKb3FJeb2OOdvsLt6NVd0xrR5PbRpWtiO0F31BtLwaan1U3P+MGozaU69MfOa97VNmKyM7/mvKGwy1q5b0iBxMbkkyoPgat2iASeRcgyzKfffYZPXv2ZODAgURGRrJ582Y0Gk1nh3ZBiMQuXNR8fi8Hyjdjc9ZSYy9FISkpqt2PUqHi9mHPoJCUmIMjAAjWmAk3JhAbkoxRG0qEKTEwkYdI6udu+d4ifrMsG4fHS2Fdy9ng9BoVT03oz6Oje6NUdNxY611F37O3ZA0AIfpo9O44xg658bzHd8uyzLq8zzhQvqXVPgkF1wx4UEzT2gXt3r2b++67j8GDB5OVlYUkSZdNUgeR2IWLkMvjoMljwxIcQa29lA0Hl7Y65tgCHDGWnvSKHEyvyMGdEOmlye318da6XP64cid1/zPWPCFET4RBy2s3ZpIZb0WhaN+Vw3x+L4U1+zhSvZcaewnXpz+CJCmIsfREqVARbelBtLkHW7duO6+kXtVYRH7VDvYUr25RrlZqmdTvPsy6cFTKrrcO9+VMlmW8Xi9qtZp+/frx/PPPM3HixMty9TqR2IWLQqOzhp2FqzhSvQ+X106UOYlJ/e4jzBBH7+gRhBpiCDfGo1Hq0Kr1XWL50EtFg9PN/M0H+ffGg1TZnZQ0NLXYnxiiZ/bwZH4xujdBHTREzeV1sK9kHftK1uHyNrcKSJICh7sRfZCZuNBU4tphHfHy+nwKa/ezu+iHFuXDetxAStTQyzJJXAzq6+t5+OGHsVgsvPbaawDMnj27k6PqPCKxC12ay+tg7YHPOFK9J1Bm1IbiOzpbmyRJDO1x6fZu7Uxen5+opxe2mgHumNdvHMJNAxKINOo6NA6Hu4FPN80FQKPS0TtmJN3C+hFmiEGlPL/mVVmWqbYVcbByO/tK1rbaP6HvLKLMSeIPxS5Op9Nx+PBhjEYjTqcTrfby7ucgErvQ5RTX5uL2NtE9fABqpZbGpmoAEsPSuDJluhj724FkWabK7uLOD9bwTW5poDwsOIiHrkjhp4O609NqOsUVzp/TY+dI9R4UkpKekYMI1pjoGTEIoy6MPjEj26U/hM1Zy485H1PR2HpMPTQn9HBTIurz/MNB6DhVVVXk5OQwcuRINBoNixYtwmq1oujAvhwXC/ENKXS6WnsZNfZSimtzOFS5HeDo+uIDUEgKrkyZjklnFQm9A9U6XPxnyyHmLG3dSSxr9jjGJUdfkDiKanNYnfMpLq+dkOAoekYOAuCK5Jvb7R4F1Xv4bt/7LcrCDHFkJE4gwph4SS+sc6nweDxMmDCB2tpaNmzYQGRkJBEREZ0dVpchvimFC06WZRzuevRBFopqcvh277utjgk1HF8u8djKWUL7y6tqYPI//suhaluL8ql944gzB/O3m4Z2eAy19jK2H/mWalsxNlcdCklBesJ4Eq392v1eeeXZLeZpvyXzd+g0BrE62kVGrVYzZ84c6uvrsVov7+mZ2yISu3DBlNUfYmvBSioaDmPSWblu4CPEhaZwQ8aj7Cz8nvjQ3oQZYjBqw0QnpQtk4MvLafIcH5P9iyt78/sJ/bHoOqYJWpZlbK5aXB4HYYbYwMxwBdW70aoNRJq6kdn9mnYdQlZef5iDlVsBidyyjYHyu0Y+L37PLiLLly/no48+Yv78+ahUKu64447ODqnLEold6HA/5nwcaGI/prHp+NKUluBIrky59UKHddn7al9xIKl/fd9YJqTEnOaMc+PyODhcvYvSuoPUOcqoc1QAMDHtHqItPTHrwrlp8K8xBIW2S6KVZZl6XxFrcg+RV5Hdan+kqTsT0maJpH6RWbZsGatWrWLHjh0MGjSos8Pp0kRiF9qdx+tie+G3DO42BaBFM6eYZrNz+fx+3t+ST1ZOMZ9ub+441jvS3GFJHWD5jjdodFYf3ZICyfzY3OySJGHUhp33fVzeJtbkfkphzb7mgorj+0KCoxiYMA6DNoQQfZSY7/8isX//flJTm4cxvvDCC/zyl78kJUUsZXs6IrEL7cLlbaKqsZAth7+m1t7cmzo+tDdR5iTSYq8kIawviWF9OznKy5csy/zuy2289N2eVvuy51zTLvfw+FzsKvqeysZCuln7kRLV/Hw+2twDqyGOvnGjCNVHt3tSXZz9CvVNla3KYyy9yEicQKg+RgxXuwg999xz/OUvf+HLL79k2LBhhIaGEhoa2tlhXRREYhfOW1tN7QmhfdCqm1ftCtFHiQ5wnSivqoGU51vOzjd7eDI/vyKF3pHm82qSdnudFNfmcKA8m7L6g4E51F0eO8mRQ5AkiRG9fnJe8Z+MLMt8s+ffLZK6URvGkKSpVOTbGZQmmmsvZuPGjeOHH34gJESsTX+2RGIXzonP78XpsaEPspASNZRDldtRSEqGJE0lLiQVg9bS2SEKwHubDjLrk3WB7YdHpfKX6we32/PlkrrcwJK3GqWW5Ogr6Bc7miB18GnOPDdVjUXsL11Pla2IOkd5oHxA/NWkJ04IbFfkt362LnRt9fX1PP/88/zmN78hNDSUYcOGsXLlStEX4hyIxC6clRpbCWsPfEa1vZgeERmM7HkTkebuTB/6+0ANXeh83+SU8Ktl2ewuqwuUVT17CyHB5zZGu85RQV55NrWOMlxeB1el3I5BG0KoPpa0uNF0s/ZrbvLuoGFjHq+Lr3e9TY29pNW+vrGjGJgwvkPuK1w4H3/8Mf/4xz8wGo088cQTACKpnyOR2IUzsq9kHZsOLUfGHyirbCwMdIwTSb3rcHt9TPrHfwPbfSLNfHnv2HNK6uX1h9lakEV5Q36gLEilJ68im4EJ4zDpwhjcbXK7xH0yBVW7+W7/gsC2JTiSq1J/ik5jIEjVMS0DwoXR0NCA0WhEkiTuuecedDodt912W2eHddETiV04LY/XxdaCrEBSjw1J5qrUn4qlTrsQn9/Pt7ll/HTB6hZzu9f+6VZM2nMfk77p0BdU24vRB1lIix1FUkQGQaqOnRsemjviVduKOVS5ndyyTYHyawf8XCyTeonIzs7mrrvu4pe//CUzZ85EqVQyY8aMzg7rkiASu3BSjc4atGoDalUQk/vN5kD5FrHgShcjyzK/+WIr837Y22rfh3eMOuOk7vN7qXOUc7BiG43Oasb2uQuA9MTxgWVRL9TsbGtyF7Y5/lxMKHNpiYmJwePx0NjY2NmhXHJEYhdakWWZpdv+Qp2jAqsxntEptxFqiGGoQST1rsLn93PnB2v5ZPvhFuWzhyfzzMT+RJzhimtHqvdwsGIbJXUH8PhcQPM8/bLsR5IU7bIU6plyeR18vOG5Fo97BsRfjVqppXfMCJHULwGrVq0iIiKCtLQ0oqOjyc7OxmAwdHZYlxyR2IVW9pduCMwOppRUGILEcJOu4pucEn7zxVZ2lta2KL9jUBLzbx95Vtfy+FysOroYSpAqmF6Rg7EER9EjYuAFq53nlG5ka0FWYI31Y3pFDmZkr2kXJAbhwti/fz/Tpk0jPT2db7/9FkmSRFLvICKxCwGyLLP2wGccKN8MwIiePyE5akgnRyW4vT5e+O9uvtxXzJbC6hb7/jRlIL8Zk4ZCcWa1WburjoLqPfSJGYlKoWZM6h0cKN/C2D4zOiyZ+2Ufdlc9dfYymjx2Gp3VeHwu9peub3VstKUnfWOuuKAtBULH8vv9KBQKUlNTefLJJxk3bpxofelgIrELVDQcIVQfjR8vR6qbn9X2j79aJPUuQJZl+ry4jPya46uv6TUqKp+9hSDVmc+mVtVYSEH1HvaWrMHv99ErMhO1UkOiNY1Ea1q7x11YvZf/7vsPOrWRJs+pn6EagkK4PuMXojPmJcbhcPDUU08B8PLLLwMwZ86czgzpsiES+2WszlHBxoNLKa0/yLi+M1FKaob1uB6FpCBBTP/aJXR/7nMK65qbqeeM7sPsEb3oEWY84xqP3VVP9uGvAzMDqhQaMpMmd8h4820FK9lRuKpFWZOnEaM2jCZ3A6GGWOJCUvD5vUSau6OUlISbEjts7LvQuZRKJevXr0eSJBwOB8HBYmjihSIS+2WovqmSjQeXUVJ3IFBWVn8IiQi6h/fvxMiEEz3/7a5AUp87JZ3Hxp59zXpz/pccrtoJwJUp04kLSW23BXicHjvFtbmUN+S3GJIGoFSoibH0ZHTK7aiU6na5n9D12Ww2cnJyGDRoEEFBQXz88cdEREQQFCRaYy4kkdgvM0eq9wQ6TKmVQfSOGUGfmCvQqvVkV4tpODub1+dn2Z4ibp7/Q6BsTM/IM07q9Y5K8qt2MCD+aiRJQc+IDKyGOBKtaRi17bOAht1Vz8rd71DfVNFqX0JoH8b0vlM8Q70M+Xw+Jk2aRElJCevXrycyMpL4+PjODuuy1KGJfe7cuezYsQNJkvjd735H//7Ha4MffPABy5YtQ6FQkJaWFphCUOhYYYY4hiZN5WDFNqYMeEAsX9mFtLVYi0mr5uv7xp32XKfHTk7ZRrYVrASan82nJ44nLjS1XTqiNbkb2Zz/JfmVO1sMRwMY3G0yIfpowo0JYjney5hSqeTuu++msLAQs9nc2eFc1jossW/atImCggI++eQT8vLyePzxx1m4cCHQ3FzzzjvvsHLlSlQqFXfffTfbt29n4MCBHRXOZc3n97I691NSo4dhCY6kd8xIesec3dAooWN9n1fG2Le+CWz3jjTz/YMTsBpOnShlWWZP8WqyC1Ygy34UkpLU6OGkxY1ut9i+2fMuxbU5rcqnDnyYMENsu91HuPisW7eO//znP7zxxhuBxC50vg5L7OvXr2fcuOaaRs+ePWloaMBms2EwGFCr1ajV6kCHiqamJvEXXgfx+b28v+5JAA5X7WTqwIfFvO5dyIS/f8N/D5S1KKt89hZCz3Be95yyjWw5/BUqhYa0+CtJiRqKTmM877jyyrNZc2Bhq/KJafdiNcShVolnpgK88847LF26lBkzZjBixIjODkc4qsMSe1VVFX37Hu9ZHRYWRmVlJQaDgaCgIB566CHGjRuHVqvlmmuuoXv37h0VymXto41/DPw8qd99oobVRaw6UMpb63IDST0hRI/PL7PvsevQB528s1lhzX52Fq7i6t4z0GkMJIT1oaKhgIzECRi05z+R0Ob8L9lTvLpFWbDGRGJYmphOWACgqKiIuLjm+fpfeukl7r//fjIzMzs5KuFEHZbYZVlutX2sQ43NZuPtt99mxYoVGAwG7rrrLvbv309q6qmfBe7evbujwr0kFbk34/U1LwjSI+hqivNqKebUHeSys0UHuo424bMc6lzH53YfEK7jn+MTAdi/e2er472yiwrPXhz+aprk5hnnsndsRKdoXvNeT09y9hw6qxia/33K5Lm+xS3b8eNtdYxOCiUp6Krmfhh1F9/vxsUW78Vg4cKFvPPOO8ybN48+ffpw+PBhFAqFeK+7mA5L7JGRkVRVVQW2KyoqsFqtABw8eJD4+HhCQ5t76Q4ePJjdu3efNrGnpaWJYROnsad4Nb1jRqCQlFgqFKzOPUzv6BEM7THhtOdmZ2czaNCgCxDl5cnl9fHkV9upc/kA6B8dwgvXZjAhJfqkvcjrHOWs2vc+Db4qFJKScGMCw3pcf04tL7Iss+3ISnYWftfm/iBVMMEaEynRQ0mJGnZR92wXv8sdw+Vy8d1339GnTx8A8R53MJfLdU4V2g5L7CNHjuT1119n+vTp7N27l4iIiMC8wLGxsRw8eBCn00lQUBC7d+9m9Oj26+xzOapsLOTLHW8Azc2ptw17iqTwgfSISO/kyASAuiY3YU9+EtieM7oPf77u9F+KGw4upaGpiuSooQxNmopSceb/ZP2yH7/fR07ZRmpsxRys3NZiv05jxKS1MiTpWvGIRmhTU1MTr776Kvfffz8Wi4URI0awdu1aVCqVqKV3YR2W2DMyMujbty/Tp09HkiSefvppPv/8c4xGI+PHj2fWrFnMmDEDpVJJeno6gwcP7qhQLmmy7GfVvgUU1hxv2h2TegdBKjHLU1dR63BxxesrAttvXJ3I/decOql7fW5USg0T0+6ltC6PmJBeZ3y/3LLNrMv77KT7+8RcQWb3KRdsoRfh4vXBBx/w0ksvYbfbefbZZwFQqcT0J11dh35Cv/rVr1psn9jUPn36dKZPn96Rt7/kndjjHWB4jxtJiR7aiREJ/+tfGw4we+GGwPand11JN0/VSY9vdFazveBbyhsKmJb5GyRJOuOkLst+5q/9XYsypUKNRRdBtKUnKdFDMQSFXNRN7ELHc7lcaDQaJEniZz/7GQ6Hg1mzZnV2WMJZEH96XcQUkoLpQ3/Pyt3vkJE4kbjQlM4OSThBeWNTi6S+eOZVXJcWT3Z224m9oGo33+1fALRcE/10/LKfgqpd/JDzUaAsJDiK69IfEUlcOCt79+7l7rvv5sEHH2TGjBmoVCr+7//+r7PDEs6SSOwXIVmWKa7NIdLUHY1Kx3Xp4h9eV3TDv493UvO+fMdJk+yhyh3sKV5Nta0IgOSooWR2v+aMkrosy7y/9skWs8GN6HkTyVFi+JFw9sxmM+Xl5Rw+fLizQxHOg0jsF6HlO/5Gta0YtTKImzMfF9N4djF+v0yfF5dyoKp5udIffz6xRVKXZRm31xn43OrsZVTbijDrIhjW4zqiLT1Pc30f9U1VfL//gxbztSeG9eOK5Gli+VPhrGzbtg2dTkdqaiqxsbFs2bKFsLCwzg5LOA8isV9E7K56vtnzb+oc5QCM7XOXSOpdTH2Tm9ATer8/NDKFkd0jWhyT7/6R/G3fMjrlNiJMifSJHUlK9DCCNcZT1tK9PjdLt/2VRmdNi3KlQs2Vybd2yLrqwqXt0KFDTJgwgX79+vHtt9+iUChEUr8EiMR+kXB5m1i4+fnA9sS0e4kyJ3ViREJbBs37MvDzivvGMj4lJrDt83vZWrASu78ClUeNy2MHQKs2nPKaWwuOjT1vOelTpKk7/ePHEBuS3H4vQLisJCUl8cgjjzBq1CgUCjFK4lIhEvtFoqhmPyqlBq/PzYwRf0KhEKuydRWyLPPupoM8/uVWquwuADb9YgqD4o/XfJrcNr7a+RaNzmoklEzqPxurIe6U1/X7ffxnXetVD68Z8CBWQ7zoGCecNbfbzSuvvEJjYyNz584F4MknnzzNWcLFRiT2i4Bf9tEjIp3EsDT8sk8k9S5G9asFLbYnpsa0SOoA6/I+p9FZTWxIMqam1NMmda/PzYL1TwW2I03dmdjvXhRi7LlwHvx+P8uWLcPhcPD4449jNJ7/gkFC1yMSexe3Pm8xdY5yUqOH0z18AHDyBUKECy/95eWBnx8amcJzUwZi0mpaHdc9fABN7gauTLmN3Tv2ttp/ohp7Kcu2vRrYFsujCufD4/Fw4MAB+vTpg1ar5f333yciIkIk9UuYSOxdmNNjJ6dsIwBxoaeeR1+48HaW1LKztHlRlvtHJPPaT4a02J9Xno3VGI8lOIJu1n50t/Y/bfP54aqdfL//w8D2tQN+LpK6cM78fj9Tp07l4MGDrFu3jvDwcHr2PPWoC+HiJxJ7F9XkbuSTTX8KbPeLu6rzghFaaXR6SH+lubaeHG7ijZuOz/gnyzI5ZRvZcHAJwRozNw3+9UnnePfLfhqaqqhoOMy6vM8D5WplENMyf0uQStexL0S4pCkUCm644Qb27t0rFtC6jIjE3gX5ZX8gqUsomJb5WCdHJJxoR0kNGa8c7/0+7/rj6xzYXfX8mPMx5Q35BKn0XJV6e5tJPbdsMwfKN1PZeKTVvvjQ3oxJvUP0pRDOyd69e3n33Xd58cUXUSgUzJ49W3S0vMyIxN4F2Zw1pEYPZ3/pem4d+gRatb6zQxKOendTHvd8sj6wfaz3u1/2kVeezYaDy/DLXuJCUhjW4wYM2pAW59uctexqWgh5La+bHDkEJBiSNBWVQvSjEM7dK6+8wuLFi5k0aRJjx44VSf0yJBJ7F+OXfejURmIsPekVOVgk9S7kle/28JvlWwPbjc/fRrCm+Z+Qw9VAjb0ElVJNrKUvV6ZMb/WF6nA1sGjLi4Ht1OjhDOtx/YUJXrik1dTUEBoaCsDzzz/PrbfeytixYzs5KqGziMTehfhlP/9Z+wQje95Ez8hBYlnNLqK0wUHcH44vg2rRaaj4480oFQoqGgoINyZg0IYwJGkqabGjW9XSAfaWrGXToS8C27dk/o7gINMFiV+4tM2fP58nnniCZcuWkZGRQUREBBMmTOjssIROJBJ7F/L1zr8DsCl/Ob3EIh5dwppDFYx+IyuwfVt6N97/6RXIyOws/J6tBSuItvRkQt9ZKCRlq6TucDewfPsbONz1gbIEzQiR1IV2k5SUhMlkorGxsbNDEboIkdi7CL/sC3Skurr3jE6ORjjml8u2BH7e+9h1pESYcXrsrMv7nCPVewDISJzQ5nPMJVv/EpjX/5ifXfEC2dnZHRu0cEnz+Xz861//Yvr06ZjNZkaNGkV2djY6nRhBITQTib2L+HRT8/SOJq2VaEuPTo5GOGZLYTUAxU9PI8IYxI4j/2VH4Sr8sg+t2sC4PndhNca3Om/ToeWBpB6sMTO0x3UkhvW9oLELl6b333+fxx9/nPz8fF544QUAkdSFFkRi7wJyyzbhPLogyKBukzo5GuFESoWEzy8TZdLh9Xsoqs1BISn+NSDqCAAAIABJREFUn737Do+qSh84/p1JMuk9JKRBGi0JLUCUjhRBmlSJIIpl1RWUH66IoGABxba66qosi4oiqyi9WECkSg8tJNQE0nuvU+/vj5GBmDJJSDLJ5HyeZ5+99869576JIW/Ovee8h4iOo+nq07/SCPbC8mwOXd5Azp/rqgN4OnZkbM+/myJ0wYxotVrkcjkymYxZs2aRkpLCM888Y+qwhBZKJPYWoHP7SDwc/SkozRRLb7YQaq0OmxfX42qj5pGIAgAs5VYM7zYbAFuFvhynJOnILLrByYRd5JamVmrDz7ULI8Mebd7ABbNz48YNnnrqKR555BFmzpyJlZWVWLhFqJVI7CZUWJZNTMp+Bnaaipu9N2723qYOqU1Ta3VsiUliw9kbbI1JBmBityy6exWQV5qOm723IaED5Jdmsu3Mh1XaGdP9STwc/LG0EPPRhTtnYWHBxYsXOXHiBDNnzjR1OEIrIBK7ieQUJ7Pz3KcA5JWmMbH3fBNH1LZtu5DMlK/2VzrmbqdiSEABjjbuuNh5AfpysUXlOeyOXUOp8tZI9wCPHvi6dBKzGYRGkZCQgE6nIyQkBH9/f/744w/8/auO5RCE6ojEbgI6ndaQ1EG/0IdgOgHLN5FcUGbYnzewPRO6KUnNPYIE+Lp2QqNVcTR+C9ezz1W61lKuYGTYHNo7BzVz1IK5Sk5OZvDgwXTt2pXdu3djYWEhkrpQLyKxm8Dhqz8CYG1pz4y7XhZrbJtI5V66RHh7V07/YxwnErZzOeMYNlYOhHj24ULqAS6lH6t0rYeDP30CRtPeOViU7BQalb+/Pw8//DCRkZFYWIj1AoT6E4m9mSk15SRknwUgMmi8SOomotJomfLVfmRITA/PZGSImscGzUYmkxHsGQFISJLEhdQDla4b0uVBAj26i6qAQqPR6XR88cUXZGZmGgbFrVy50sRRCa2ZSOzNTGFhzewBK7iefY5gz96mDqdNyioux/u1jdwTmMfk0CzsFVoAUvOvcPjqj1SoS6pcE3XXUlG3X2gSKpWKNWvWkJeXx7x583BxcTF1SEIrJxJ7MzqfvB8nW3cCPLoT4tXH1OG0STtik3n0uz38PTKDvr5FyGQKLOWWqLVKfov7qtK5DtauDOs2Czd7b+Qy8UhUaDw6nY6kpCQCAgKwsbHhq6++wt3dXSR1oVGIxN6MkvPiKKnIp4NbqFhr2wQKylVM+nI/rw9PxM9ZCYAkqVBrb51jY+XAxF7PiVruQpORJImZM2dy5swZjhw5gru7O6GhoaYOSzAjIrE3o+ziJKwsrEVSN4Hnt51k76UT/GtsGo7WtzK5k40HZapCxvWci6t9exNGKLQVMpmMQYMGIZfL0Wq1xi8QhHoSib2ZHLy8AUA80jWBq9mF5BT+zoKB+YZj9tbOTOmzEAu5+CcgNL3k5GS++uorXnnlFeRyOc888wxz584VMyqEJiF+qzWDUmUhCdlnAOgfMsnE0bQtW8/uIbvwd4YHSYZj0/stxt7a2YRRCW3NG2+8waZNm+jbty9jx45FLhezKoSmIxJ7M7iQop8y5eUUQIBHDxNHY/50kpbk3Evsu7QOAKvbHpJM6bNQJHWhWZSWlmJvr59JsXz5coYPH859991n4qiEtkAk9mYQGTSBgHY9cLZtZ+pQzN7x+O1cTD9S6VhhhQUzI+fRzknU4heax5YtW1i4cCGbNm2iZ8+etG/fngcffNDUYQlthEjszUAmk+HlFGDqMMyWRqvm4JXvScqNrXQ8o8SKDee9+fXvj9LOUaxXLTQfFxcXNBoNKSkp9OzZ09ThCG2MSOxN7Ofzq7BVONG7wyic7USPvbGdS/6dM4m7Kx2LzbLngz8C2PP0SBaNbi8GKAlNTpIkNm7cyOjRo3FycuKee+7h3LlzODuL1z5C8xOJvQldy4wms+gGoC8fKzSOjMIEfolZXe1nP8R4cTLNh4I3p+BoI5ZNFZrHhg0beOaZZ3jiiSd49913AURSF0xGJPYmIkmSYbGXQI+e2ClEwZM7pdGpORG/gyuZJyodl8vk6CQdW+I8iU73IXv5DBNFKLQlkqSfaSGTyZgyZQrR0dE8++yzJo5KEEDMuWgCkiTx7dGlhv2hXcWgmTuVUZjAt0eWVkrqI7o9gpWFDTpJx6ZYT3Ze9mD9Q0NMGKXQVmRmZjJr1ix+/FH/x7tCoeC9994Ty6sKLYLosTeBvNJ0tDoNAGN7PGPiaFq/S+lHORa/zbA/pEsUHd3D+f3iN6i0FXx/vj2/xbszd2AXRnYWI9+FpldRUcGhQ4ewsrLigQceMHU4glCJSOxNwN3Bh1n936BCXYyjjbupw2nVdDptpaQ+pc9CHG3ckMlkDO86B9/XvyK7VAHAR5P7mSpMoQ3IzMykoqKCjh070rFjR3bv3k2XLl1MHZYgVCESeyOTJB15pRm4O/hgZSGS+p1Iy7/K7tgvDPv3hj3OjrMf4+0SwsCQadi9tBHQJ3XN+w+J0e9Ck0lPT2fQoEEEBwfz888/Y2FhQbdu3UwdliBUSyT2RpaUG8e+S9/i7xbKiNCHTR1Oq5BVlMiVjBOUqYpRacuxlFuRXZyMVqc2nNO7wyj2XvwGrU6NWteOv/14yvDZ/rn3iqQuNClvb2/Gjx9PeHi4+FkTWjyR2BvZvkvfAoiypXWg1ijZeOpdlJrSGs+xt3YhzGcQJ67vBKCbzwgGfJoBZAMwqbs/g4O8miNcoY3ZsmUL8fHxvPDCCwB89NFHJo5IEOrGaGIvLCxk1apVZGdn8/777/P777/Tq1cv3NzcmiO+ViUt/6phu7vfMNMF0sJJkkRc2mFOXt9lOGancGJw5xk42LjgYO1qOJ5bksqvF/SP4+8Kup/wf14F9D2mA3NHMyBAFP0RGp9SqeTNN98kKyuLOXPm4OHhYeqQBKHOjCb2pUuX0rdvX86c0a9OplKpWLRoEf/973+bPLjW5sT1HQB4u4SIHnsNYlMPc/LP3vdNw7vNpoN7WLXnO9t54mDtQnf/YfT91yVuJvW4RRPp4im+x0LjyszMxMvLC2tra9asWYOjo6NI6kKrY3Qee3FxMQ8//DBWVvoqXmPGjKGioqLJA2ttlOoyCsqyABjUabqJo2l5copTWHv4pUpJ3d+tGzMiX66S1Esq8om+8QsAVhbWjOkxjzf3llFYoX/n/mXUAJHUhUYlSRLPPPMMw4YNIz8/H4BevXoRHBxs4sgEof6M9thVKhVqtdowYCQnJ4eysrImD6y1sbRQMLbHMxSVZ4ve+p8Sss6SmHuBoopc8kvTDcedbNsxOWIBMtmtvyuzi5NIyD5HTnEy2cVJAPi5dsXDsQMuSzag0uoAGBDQjkf6iV+2QuOSyWR06dKFhIQESkpKcHV1NX6RILRQRhP7rFmzmDZtGtnZ2Tz99NPExMTw8ssvN0dsrYqF3BJPpw54OnUwdSgmpdGq2HXuM/LLMqr9fFLE87jYeRr2dTotp5N2E5tyEAkJGXI8HPwI8OiBo603ioXrDeeuuK8Xi4aHN/nXILQNeXl5fPPNN8yfPx+ZTMa8efOYN28eFhYWpg5NEO6I0cQ+duxYIiIiOHPmDAqFgjfeeAMnJ1H3/HZZRUnEpR0i2LMP/m5dTR2OyehL6S6rdMzFzpNhXR/CxsoOGyuHKtfIZHKyihKxs3bm7uBJtHcOxMrCmtTCMhwX/2A478uoAaKnLjSql19+mQ0bNhAQEMCkSZNEQhfMhtHE/vjjj/PFF19w3333GY5NnTqVTZs2NWlgrclvsV+i0lbgbOvZJhN7TnEKF9OPEJ912nBseLeH6eAeWuVcSZJIK7jKjZwYBoRMQSaTMaTzDKyt7LGy0Beb0ep0dHjj1s/X+xP7iKQuNAq1Wm0YL7Rs2TLCw8OZMGGCiaMShMZVY2Lfvn07n376KWlpaQwbNsxwvKKiAi8vMW/4Jn1RFf1gwmDP3iaOpnnllaSx/ezHVY73CxxXbVKvUJdwImEnCdlnAQj3HYKzXTscbG69z5QkCdtF/zPsp782DU9H2yaIXmhr9u7dy4IFC1i/fj3du3fH29ubuXPnmjosQWh0NSb2iRMnMm7cOF5++eVKSxHK5XKR2G+TW5wMgKtde5xszX9aTLmqmJziZGLTDpNRmGA47mLnSU//kfi4dsLasmoi1uo0/Hz+PxSWZ+Ni58WAkKk4292ag34tp4iub2/jz5UwAX1PXSR1obHodDqys7OJjY2le/fupg5HEJpMrY/iLSwsePvttyktLaWwsBDQF2544IEH2Lhxo9HG33rrLc6dO4dMJmPJkiX06NHD8Fl6ejrPP/88arWa0NBQ3njjjTv8UkwjNu0wQI3zsM1FUXkOm6Pfr/azqX1fxNGm5oJFkiRxPGE7heXZtHPswJjuT2Ihv/Wjl1uqpMvKbZWu2fb4PYwP9Wuc4IU2a+/evURGRuLo6MioUaM4c+YM7du3N3VYgtCkjL5jX7NmDatWrUKlUmFnZ4dSqazTO6kTJ06QmJjIhg0buHbtGosXLzasXQzw9ttv89hjjzFq1Chef/110tLS8PHxubOvxgR6+N1DRmECIV4Rpg6lSRRX5JFZeJ3DV2/9t7OysKa73zAC2/WsNaHfpNGpScy5gKONOyNCHzEk9XK1hofWH2ZrTLLh3BuvTMHf1b7xvxChzdm+fTtz5szhiSee4N133wUQSV1oE4wm9l9++YUjR47w+OOPs27dOvbu3UtaWprRho8ePcrIkSMBCAkJoaioiJKSEhwcHNDpdERHR/PBBx8A8Oqrr97hl2E67V2C6d1hlNktzypJOr47vhyVprzS8RmRL2OrcKz12oKyLK5lReNg7UJX7/5YWSgY2Gkqnk4dsbGyR5IkbuSVEPLW1krXiaQuNKbRo0czffp05syZY+pQBKFZGU3s9vb2KBQK1Gp91a8RI0YwZ84cZs+eXet1OTk5hIXdejzt7u5OdnY2Dg4O5OXl4eDgwMcff0x0dDS9e/fm+eefN7pq0oULF+ryNTWbMl0eNjJn5DIXorOjTR1Oo/jj5D6SVEdQSsWGYzYyF1wtA3CzCCIu5kqt1+dorpKu1g+Os8SGolQ5FjL9j1k2lzmVWcozexMrXbPsbh/GB7mQlXCJrEb+elqq6Gjz+HlpSUpLS1m1ahURERHcc889XLhwgSeffJLy8nLx/W4i4vvaMhlN7M7Ozmzfvp3OnTuzePFi/Pz8yMoy/utXun0U1J/7NxO3JElkZmYydepUnnvuOZ588kkOHDhQafR9dcLDw7G2tjZ67+ay9vBLADzU/w0s/5yq1ZqdOnWKq8pfKx0b2+PveDp1NHptfmkmx+K3kFl+AxsrByKDJtDBPRRLuZXhnH/ui+XFvXGG/UGBnnwR1Z8Qj7ZVFyE6Opo+ffqYOgyzc/36dQ4ePEh5eTnDhg2jb9++pg7JrImf46anVCob1KE1mtjfeecdcnNzGTVqFF9//TU5OTmGR+i18fLyIicnx7CflZVlWEzB1dUVb29vOnTQV2nr378/V69eNZrYWxLNbWuFt/akrtYo+S1uLZkV1w3HZt79GpYWCuQyo8sJIEkSx+K3kll0A1uFIyND5+Du4FvpnHK1hhd36ue5h7V35vTz47G0MN62INSmqKiI4uJifH19CQwMZNu2bfTo0YPz58+bOjRBMBmjib2iogI/P/3o5KeffhqAlJQUow0PHDiQTz75hKioKOLi4vD09MTBQV95zNLSEn9/f27cuEFAQACxsbGMGzfuTr6OZpddpK9n7mzb+pcNPXz1BzKLbiX10eF/Q2FpU+frZTIZ/m7dCPAIp6t3/0o14G9aezLesH1+4cQ7C1gQ0L/uu+eee/Dz82Pnzp1YWFiIHqQgUEtiP3XqFP/3f/+HSqXCzc2N1atX06FDB7799ltWr17NwYMHa204IiKCsLAwoqKikMlkvPrqq2zevNkw7WTJkiW8+uqrKJVKOnXqxPDhwxv9i2tKZ5N+A8CuFS/4klOczM5znxr2OyoGMqzfeKNjHUBf4/3Itc10dA/D3z2UMN/BNV53LDGbeZtOALByXNsq4iM0HQ8PD+6++26CgoLQ6XSiJKwg/KnGxP7BBx/w9ddfExwczN69e1m6dCk6nQ5nZ+dK09Zq88ILL1Ta79r1VrnVjh07snbt2oZF3QLc7OH2DbjPyJkt085zn5JTfGuamQw5ThY+RpO6JOk4n7yPuLQjKDWlSEj4u4dWe125WsPiXWf45NAlw7FnB7e9krtC4zl48CAxMTGGinGrV6+u0x+igtCW1JjYLSwsDGsRjxgxgpUrV7Jo0SJGjRrVbMG1VFqdhqB2vUnIPlPlXXJrcDn9uCGpu9h5MSrsMeytnWsd4SpJEpczjhGTcoBSZQEyZAR4dKd3h+p/Hv5z9ArPbDxe6Vjp2zOxsRK9KqFh1Go1CxYsIDU1lalTp9K+fXuR1AWhGjUm9r/+g/H29hZJ/U8WckuGdJnBwE5TTR1KnZWpirmefZaT13dVOj4pYkGdrtfo1Jy6/hManYZAj55EBIyutjjNu79fYPGuM5WO7XxiOKO7+CCXi1/CQv0VFRXh5OSElZUVq1atwtLSUhSaEYRaGB08d5P4y/gWrU6DXGZRqSxqS1VUnsvJ67tIzourdNzB2o2pfRcavV6n0yKTybGyUBDRcTR+bt1wsq1ajCcuo4Du7+2odOzB3gGsmTFA9NKFBnvllVfYsmULf/zxBy4uLvTr18/UIQlCi1djZjpz5kyl6We5ubkMGzbMMB99//79zRBey7Tp1LvIZRZM67fI1KHUqrAsmy2n/1npWETH0QS1642DjUud2th1/nMiA8fj5RxAqO+gGs+7PalP6u7PxkeGij8GhTvm6uqKo6Mj2dnZuLjU7WdWENq6GhP7L7/80pxxtBqSpKNMVYRTC5/mll2cxK5znxn2h3SJItCjZ52TrVJTzu9x35BbksL5lH2Mcn602vMkScLyhW8N+3krZuBs27rn9QumU1payoYNG3j00UeRyWTMnz+fuXPnYmNT9+mXgtDW1ZjYfX1b36Cw5hCbql/NTXtbgZqWRpJ0lZL6+F7z8HCo+0ppGq2afRfXkVl0HS+nQO4Kqnne+eMbjhq23xrbWyR14Y4sWbKEdevW4ezszNSpU7G0tMTSsuW/8hKElkT8i6mHkooCTt34CYC+AWNNHE31NDo13x5Zativb7nbUmUBu859RpmqiI7u4QztOrPG6nMH4jP5+s/CMxseHsK0nsZLzwrCX+l0OuRy/c/YwoUL8fDwYOzYlvnvSxBaA1HTsx6OJ9xaMzywXY9azjQNjVZVKamP6f5kvcvdXs08RZmqCD/XrgzuMqPGpL7pfCLDP9tt2BdJXWiIkydPMnjwYOLi9IM7/fz8WLp0Kba2tiaOTBBarzr12Pfv309KSgoPPfQQSUlJ+Pv7t8mBUX0C7sPB2pWuPv1NHUoV2cXJ7Lqtitz9vRfgau9V73ZurrNur3CutIDLTZIk4fbKBooqbr2KKH17ZsOCFtq8vLw8Ll26xB9//EFoaKipwxEEs2A0sb/33nskJiaSlpbGQw89xI4dO8jLy2Pp0qXGLjU7Trbu3BXc8uqcK9VllZL6uJ5z65XUtToNJxJ2IOlcsZBb1lj/fv+1DEZ8vsew/2DvAD6aHCmmswn1curUKbp164a9vT2jR4/mxIkThmJYgiDcOaOP4mNiYvj3v/+Nvb09AHPnziU2NrbJA2tp9l38ljOJeyhTFpk6lCq+O/6GYfvhAW/SztG/XtdfSj/G5YzjZGsuV/t5cYUai3+sq5TUf3hkCN8+NBh3+5azjK7Q8u3Zs4cxY8awfPlywzGR1AWhcRntsd9cV/3mo3etVotWq23aqFqgrKJEEnMv0NW7ZTyGzylO4WzSb6Tk36rDfn/vBcjlde89q7VKDl/ZSGJuDADtLLtUe57Ly98btq0t5WS+/gCONlUf0wuCMYMHD2bUqFHcf//9pg5FEMyW0cQeERHBSy+9RFZWFl999RV79uwhMjKyOWJrMfJK0ihXF2OncMa+BazmllWUyE/nP690bEToI/V6/K7UlPNb7FdkFydhZWHNoE7TyUlUVjmvqEJl2D79j3H09KlaRlYQalJRUcE777xDr169uP/++7GxseG7774zdViCYNaMJvYFCxbwyy+/YGtrS0ZGBnPmzOHee+9tjthajIzCBAA6uJt2cE9BWSZHrm0hq+iG4dis/m9gKbeq92DGlLxLZBcn0dE9nIGdpqGwtCEnseoiMAM/1hcqCnJ3EEldqLe0tDT+85//EBYWxsSJE9vkoFtBaG5GE/vzzz/P/fffz9KlSw1zTduaUzd+BiDAo7vJYkjLv8ru2C8qHXt4wJv1evR+u8B2PckvyyCi473IZdW3kV1SQVxmIQCvj+nVoPsIbY9SqaSwsBBPT0+CgoL4/vvviYiIEEldEJqJ0Uw9bNgwvvvuO4YPH86KFSuIiYlpjrhaFJ2kH1Pg6RRgkvsfT9hRKak/EPkyjwxcWe+krpO0nLrxM2qtCrlMTt+A+2pM6ltikmj/6o8A+LvYMTMisOFfgNBmFBQUMHz4cB577DF0Oh0AQ4YMwcHBwcSRCULbYbTHPnHiRCZOnEhxcTF79uzh888/JykpiZ07dzZHfC3CA/2WkJQXV2Oxlqak1JRzMe0PAKwsrIm6a2mDVpWLzzrDiYSdKDWl2FjaE+43pMZzJUli2toDhv0Dc0fXP3ChTXJ2diY4OJh27dqhUqlEjXdBMIE6ZQhJkoiLiyMmJobr168TFhbW1HG1KHbWTnT1vrvZ7ldUnkNxRR6X04+RdNtyq7P6v96g9nKKkzl0ZQMA3s7BhHhF1Hr+j+cSDdvq9x4S66gLtTp//jzR0dGGhVu+/PJLUd9dEEzI6L++ZcuWsW/fPkJDQxk/fjwvvvhimyn3qJN0bDv9IUHtetGzw4hmuef+S+u5kVP1dceUPi80qL30gnh+vfBfAPoFjiPMd3Ct5yfkFvPgukMAzOgVIJK6UCutVsvjjz9OYmIio0aNws/PTyR1QTAxo/8Cu3TpwoIFC3B1dW2OeFqU69nnKCzPJj77bLMk9kNXfjAkdXtrF9o7BRLi1Yf2zsENHnh0Pvl3AEJ9BhlN6gBfHL9m2P5s2l0Nuqdg/ioqKrCxscHCwoKPPvqIiooK/PzqvoKgIAhNp8bE/p///IennnqKs2fPcu7cuSqfv/vuu00aWEuQlKuvsOfnWn3hlsZ0NfMU8VmnAbC3dmZa30WNMop4VNhjZJck16kaXU65hrf3XgHgixkDcBFLsArV+PDDD1m3bh379+/HycmJAQMGmDokQRBuU2Niv7kgQ3X/aNvKtJW80jQAgj1rfyd9pzRaFX9c3WjYn95v8R23KUkSOkmLhdwSrzqM5tdodYzdcsWwP7abzx3HIJgnlUqFSqUiMTGR7t1NNwVUEITq1TjMe/Bg/WPb+Ph4Jk+eXOl/J0+ebLYATUWSJIor8gBws/dusvsUlmXz7dFlhv3ZA1Y0SruHr/zArzH/RaWpMHpuhVqL9YvrDfvJy6bi6dg2xlEIxqnVajZt2mQoL71gwQL++OMPkdQFoYWqsce+Z88edu/ezdGjR8nKyjIcr6io4MyZM80SnCmlFVwFwMHarcmeUMSk7Cf6xi+G/VFhjzVoKttfpRVcJT77DPbWzqi1ShSWtU856vPBramLB+aOxsfZ7o5jEMzH0qVLWb16NTqdjunTp6NQKFAoxGsaQWipaswigwcPxs3NjQsXLtC//62FT2QyGf/3f//XLMGZko9LJx6IfJkyZUGTtJ9bklYpqc+6+3WsLO98pbTckjR2X9AXs+kfPLnW2vYVai32L/3PsP/GAF8GBXnecQyCeZk7dy5KpZJRo0aZOhRBEOqgxsRuY2NDnz592Lp1K2q1GgcHB3Jycrhx4wYBAQHNGKJpqLVK7BSO2Ckcm6T9HWc/BsDa0o4H715m5GzjJEniRMIOLmccByDUZyC+Rgb9OS6+tRjH8JD2jAkw/QI3guldunSJf/zjH/zzn/+ka9eu+Pv78+GHH5o6LEEQ6shoKbV3332Xn3/+mYKCAqKiovj222957bXXmiE00ylTFfHz+VUkZJ9tkvZLKm49BWjo/PS/0kla8ssyUFjaMiL0ESKDJtT6CuFfB+LQ/fnO9OC80ez5u+iNCXoJCQkcPXqUXbt2mToUQRAawGhij4uLY/r06fz8889MnjyZf/3rXyQmJhq7rFWLS/2D/LKMSo/KG4skSWw89TYAXk4BWFs1zvtsC7kl93R7iEkRC/B361bruauOXOEf2/UruQW42TMwUDx+b+uuXLlCWVkZAGPHjmXv3r384x//MHFUgiA0hNHEfnMk7P79+xk+fDign+5izq5m6kf9D+w0tdHbjks7bNge0iXqjtoqVRZy6MoPxKYeQifpsLa0w8bKvtZrNp9PYu4m/eN6R2srriyedEcxCK3f4cOHGTp0KG+++abhWO/evU0YkSAId8LoEOzAwEDGjh2Lm5sb3bp1Y+vWrTg7m/e7WKVG33Np7xzcqO1ey4zm5HX9481hXWdhb+3S4LbOJO7hXPJeAOIBN3sfvF2Mx/vo9/oFZTzsrcl4fXqbqUkg1KxPnz5ERERUGiQrCELrZTSxr1ixgitXrhAcrE8aISEhZl117sAl/YAyT8eOjbqam1an4fBV/TKofq5d72ht97i0PwxJvat3f7p5D8DZrl2t10iShOUL3xr241+eLJJ6G6XValm1apXhj3ZbW1t27twpfh4EwUwYTewVFRX8/vvvfPTRR8hkMnr16kVISEhzxGYSJcp8ADreQeKtzo8n9e/VnWw8GBk2p8HtFJZnc+r6z1hb2nFv+BO4O9StQpz/G5sM288O7oqDtVWDYxBat6SkJFasWEFwcDBjxoxBLpeLpC4IZsRoYl+6dCleXl5ERUUhSRJHjhzhlVde4f2RefIAAAAgAElEQVT332+O+JrduJ7PkF+agat9+0ZrM6MwgQp1CQD9gsbfUVuONu60c/Sjq/eAOif1hNxi0ovKAfh4cj/mDup6RzEIrY9Op6OoqAgXFxcCAwNZu3Ytffr0QS5vvKdSgiC0DEYTe05ODh988IFh/5577mH27NlNGpSpHLm2hf7Bkxo1qSs1ZfwSsxoAX9cu+LvVP6kWV+RyI+cC4b5DkMvkjOn+JLI6vibILqmg01tbDfsiqbc9RUVFREVFoVAo2Lx5M3K5nNGjR5s6LEEQmojRxF5eXk55eblhDfaysjKUSmWTB9bc8kszuZJxHFc7L7r5NM5qVZmFN/g5ZpVh/+7g++vdhk6nZd/Fb8krTcfdwRcfl5A6J3WAjedvTU3MWzGj3vcXWj9HR0ecnZ1RKBSUl5djb1/7zAlBEFo3o4l9xowZ3HfffYSHhwMQGxvL/Pnzmzyw5paafxnQv8NuDCev7yI29ZBhf2ToozjauNWrDa1Ow2+xa8krTcfbJQQfl/qPbVi++zwA703og7NYhrXNuHHjBsePH2fGjBnIZDK+/PJLbGxsxLt0QWgDjCb2adOmMXDgQGJj9WuT33znbm5ySlIA6rRuudG2ipMNSd3B2o1RYY8aHbX+V0p1GfsvrSe9MB4XOy+GdnmwQbFkFutXd5vVJ7BB1wutj06nIyoqioSEBCIjIwkMDDQ8cRMEwfzVmtgPHDhAQkICERERjBw5srliMokbOfqerccdJnZJ0rHz3KeG/Wn9Xqx3GzpJy67zn1NUno2Hgz+jwh/D2rL+v5iT80sBsLaU4yWWYTV7Wq0WCwsL5HI577zzDjk5OW1iXQdBECqr8WXtJ598wueff05WVhZLly5l+/btzRlXs0rMjTVsO9vWr2d9O6WmjK//WGLYb+jiLnKZBQM7TaWn/wju6/FUg5I6wKqjVwDo4e3aoOuF1mPt2rUMHjyYoqIiAIYOHcrUqVPFo3dBaINq7LEfPnyY9evXY2lpSXFxMc8++ywTJ05sztiajZONB528+mJj5XBH7Ww7/ZFhe2CnaVhb1r0OvEar4kzSHvxcu+LtEoyXUwBeTgENjuXvG4+x+qh+TfnxYX4NbkdoHVJTU0lPT+fSpUtERkaaOhxBEEyoxh67QqHA0lKf9x0dHdFqtc0WVHNztHFjQMgU+gSMaXAbl9KPUqYqBGByn3/Qyatvna9VasrYcfYTYlMPcTrxV0N9/obKLVUakjrAyyMbt9iOYHqSJLFnzx7Dz8rChQs5evSoSOqCINSc2P/6CM9cH+mdT95HTMq+O2pDkiSOxW8DwE7hXK/H+Rqtil3nPqOwPBsvp0BGhj16x9/rkZ/vMWxr/znbbP/btWUrVqxgxowZbNy4EdD/Id6+fePVXxAEofWq8VF8fHw8L774Yo375lIv/nTir4CMDu7hda7kdrtSZSE/nlxp2J/e76U6XytJEkeubaGoPAcPB39Ghs3BysK63jHctDUmialrDxj2D8wVRUjM1ezZs4mPj2fgwIGmDkUQhBamxsT+wgsvVNo3x5Wfbj3ylnCz925QGzvOfmzYvjv4/nr1jtML40nIPoOzrSf3hj9+R0n9lZ/OsHLvBcP+g70DGBQk1lk3FykpKbz00ku8+uqrdOrUiYCAANauXWvqsARBaIFqTOyTJ09uzjhMIikvzrDdkMfVR65toUKtn1IWdddSo2uh/5WPSwh3B0+ig1soCkubet//djeTemQHdw4/OwYLUQPcrJw5c4affvqJkJAQXnvtNVOHIwhCC2a0QI0523dxHQCdvPrV+9qCsiyuZBwHoJ1jh3oldZWmAp2kxcbKnq7ed9f73rdbvvs8r/16zrB/dP7YO2pPaDnS0tJwc3PDxsaGCRMmsGXLFoYMGWLqsARBaOHabLdOo1UZaq5HBtZvxTVJkth6+tbCOON6PlOva7ed+Rcnr+8iozChXve9XXJ+Kb6vbayU1F8ZJUa/m4uTJ08yYMAAVq68NX5j6NChYiCkIAhG1anHnp+fT0pKCt27d0en05nFUo+WFgqi7nqF4vJcrCzr9277eMKtYj0P3lX3IjSSJHE+ZR+lygLSC67RL3Bcve5706GETIZ9utuwH9nBnd+eHoW9WGPdbISGhhIQEEBwcLCpQxEEoZUxmth37tzJxx9/jEKhYOfOnSxfvpzQ0FCmT5/eHPE1KWtLO6wd615EBuBGTgyX0o8CMCBkCtZWdb/+5PWdxKX9ga2VI+N6zq33O/mbpny137Cdt2KGWNzFDEiSxA8//ICbmxujRo3C3t6e33//3Sz+iBYEoXkZ/a3x3XffsW3bNlxd9WVJFy1axA8//NDkgTW1KxknuJh2BLWm7kvQanRq9l9ab9jv3L7uxUByS1K5mHYEGyt77g1/HHtr53rFe9PPF1PJK1MBoHx3lkjqZiI5OZn58+ezZMkSQzEokdQFQWgIoz12hUJRaWUoGxsbrKxa/yPf4wk70OrUBHn2rvM1v8V+Zdh+ZODKWs6sTJIkjlzdjIRE34CxuNrXv5DIhwfi+Of+ONKLygFwtVVgaSF+8bdmkiRRVlaGvb09HTp04LPPPqNv375YWFiYOjRBEFoxo4ndxcWFLVu2oFQqiY2N5aeffsLNrW7rir/11lucO3cOmUzGkiVL6NGjR5Vz/vnPf3L27FnWrVtX/+gbSCdp0erU2Cmc6rXASk6xfmnX0eF/q9cgJplMxoTez1KqLGxQTz02o4AXtkdXOpbxeut/FdKWlZWV8dRTT1FaWsqmTZuQyWRMmTLF1GEJgmAGjHb5Xn/9dWJiYigtLeWVV15BqVSyYsUKow2fOHGCxMRENmzYwIoVK1i+fHmVc65du8bJkycbFvkdSC+IB8DdwbfO15xI2IlGp38E7u1StwFNOklHYs4FtDoNQIOSukaro8d7Owz7Ze/MRPvP2aK33srZ2tqiVCpRq9UUFxebOhxBEMyI0R67k5MTy5bVf/nRo0ePGtZwDwkJoaioiJKSEhwcbq2g9vbbb7NgwQL+/e9/17v9O5FZdAMARR1668UVeRy5tpn0gmsAdV7cRSfp+CXmP2QVJeLv1o0RoY80KFbrF2+907+2ZBLWluIxbWuVnZ3NsWPH8PHxQSaTsWbNGhwcHMS7dEEQGpXRxF7T3Nn9+/fXel1OTg5hYWGGfXd3d7Kzsw2JffPmzURGRuLrW/de84ULF4yfVAeJyksAaAvsiI6OrvXcmPIfDdv28nbYFAUavQagRJtFlioRW5krdqVBdbrmrz6IzjBsvzXIj7wbV8i7Ue9m6qUhcQrGSZLE3//+dxITE1m9erWpw2kTxM9y0xPf45bJaGL/3//+Z9hWq9UcPXoUpdL4SPK/Lj0qSZLhD4SCggI2b97MV199RWZmZp2DDQ8Px9q64fXUb2qf70hq/mV6dhhR6zv20zd+Bf1rdcb1fIZ2jh3qfI+fzn8OKogIGVGvJVxvyimp4Pv/6UvePtW/M4sm31XvNuorOjqaPn36NPl92pLbf+5XrlzJtWvX8PX1Fd/nJiZ+lpue+B43PaVS2aAOrdFngL6+vob/BQQE8OCDD3Lo0CGjDXt5eZGTk2PYz8rKwsPDA4Bjx46Rl5fHrFmzmDdvHrGxsbz11lv1Dr6hfF07Exk0wejAufN/Lufq7RxSr6Qek7KfrKJEXO29CfGMqHd8kiTh9eqtJwX/niLW2G6Ntm/fzr333ktJSQkAI0eO5OmnnxaP3gVBaFJGe+xHjx6ttJ+RkUFSUpLRhgcOHMgnn3xCVFQUcXFxeHp6Gh7DjxkzhjFjxgD6VasWL17MkiVLGhJ/vRVX5KLRqrG3dql14ZWckhTD9ujuT9S5fUmSyCy8jqVcwZDOUYaytfW5/mBClmE/9dVpyOWijGhrdO7cOWJjY4mOjmbo0KGmDkcQhDbCaGL/7LPPDNsymQwHBwdef/11ow1HREQQFhZGVFQUMpmMV199lc2bN+Po6MioUaPuLOo78Fvs1xSWZxl9tL7zrH5An2s9l3OVyWSMDHuUclUJtgoH4xfcJr2ojC4rt1Gq0o+in9UnkPZOdZ+OJ5jeyZMn6du3LzKZjBdffJGZM2eKsrCCIDQro4n9pZdeqjQIrj7+uqZ7165dq5zj5+fXrHPYC8v1vWEXu5qLxKQVXDVs3xv2WJ3bLlMVYadwAqhXUr+eW0zIW1srHZvTL5jFI8Pr3IZgeh9++CHLly9nzZo1TJkyBWtra5HUBUFodkafE7/zzjvNEUezKKnIN2xbWdRcijU+6wwANlYO2Coc69R2Xkkam0+9z+9x3xjmrdeFJEmVknqgmwP7597LF1EDCPFwqnM7gundf//9DBkypMF/CAuCIDQGoz12X19fZs+eTc+ePSuVkp0/f36TBtYUsov1YwPaOwfVel5Knn463PBuD9ep3Qp1Cfsvf4dGp6KjRzgW8rovc3/3Rz8btq+/MoUOrg1bGEZofvn5+SxbtowFCxYQFBREUFAQW7duNX6hIAhCE6pTYq/PXPOW7HLGcQD8XKu+EjCck34cpaYMgHaO/kbblCSJvXHfUFSeTVC73gTXYxR8amEZp5JzAVg1/W6R1FuZgwcPsn79emxsbHjvvfdMHY4gCAJQS2Lfvn07EydOZN68ec0ZT5MK9oygqDyHwHY9azznaPwWAGwVjnWqB1+izCe7OAlv5xAGd657/fbEvBKC3txi2P/b3Z3qfK1gOgUFBdjY2GBjY8PEiRNZu3YtY8eONXVYgiAIBjW+Y9+4cWNzxtEsOnn15YHIJbXWbLeU69+9P9CvbtPvEv58H+/tElLnqW0pBaWVkvqVxZPqdJ1gWhcuXGDgwIG8++67gH4GxMSJE7G0rPurF0EQhKbWpiplVKhLjZ8kA3d73zqv3hbmOxhPx450qePa7Bqtjo7LNxv2L7w4kWCPug3QE0wrICAABwcHnJzEoEZBEFquGrsaZ86cYdiwYVWO3yyRaaxWfEuTX5rJT+c/p5NXXyKDxld7jk7SotGq6tWupYWCMT2eQl6H3npsRkGlldo2PDyEbl71X/FNaD6//fYblpaWDBs2DAcHBw4dOoRCUfOMCkEQBFOrMbGHhobywQcfNGcsTUqtVaLWVlChLqnxnLjUPwznGpNWcJW8knQ8nQLwdDJeblal0VZK6psfHcb94cYH5wmmk5aWxqxZs/Dx8eHkyZNYWlqKpC4IQotXY2JXKBRmMxoeIOvPpVodbdxqPKdMVQhAV5/+tbZVUJbFvovfopO0jO3xjNF763QStotuLaaT9to0vBxFRbmWSq1WY2VlhY+PDx988AE9e/YU79EFQWg1avxt1aNHj+aMo8kl5elXSqtpgJtGqyYuTd9j93GpeYS6JEmcSNiBWqtkUKfpuDv4GL33N6cSDNv7594rknoLpVQqWbRoEenp6Xz//ffIZDJmzZpl6rAEQRDqpcYXwwsXLmzOOJqcWlMBQFfv6nvjv1/8xrDtYO1aYzuxqYdIK7iKvbUzQZ69jd5337UMHt9wBIAn+3dicJBXfcIWmpFCoSA5OZnU1FTy8/ONXyAIgtACtYnni1qdhvyyDABsrKoWgdFoVYb68KPD/4alhVWVcwBKlQWcTvwVgEGdphsdMPfA1wfYdP7WSnhi+dWWp7i4mBMnTjBixAhkMhmrV6/G0dFRvEsXBKHVahOJ3UJuycy7XyMl/3K1n3979FXDtrdLzYt2FJXn4uvaBTd7b7xdQmq9p1qrMyT1jq72xC6aiIVYh7tFkSSJadOmce7cOQ4cOECXLl1wd3c3dViCIAh3pE0k9qLyHJxsPQiqpuKcUlMOSABM6PVsre14uwTj5RyIDONz3PdeTQfA1VZBwitT6h+00ORkMhkLFiwgOjqagIAAU4cjCILQKMy+C1mqLGRz9PscuPxdlc8kScd3x/Rry9spnHB3qHkWQFZREpIkIZfJ61S8ZskufUW6WX0CGxi50BQOHz7M1KlTKS3VFysaM2YML7/8MtbW1iaOTBAEoXGYfWKPSdkHQGr+lWo+O2DYHtP9yRrbSMu/yk/nP2P3hS+QJJ3Re55OyeVcmn7w1VP9O9c3ZKEJ7dmzhwMHDnD48GFThyIIgtAkzD6xZxYlAjAwZGql4zpJZxgIFxk0ASdbj2qvT867yJ7YLwHo7j/UaD14SZLo9+FPhv3Q9i4Njl1oHJcuXTJsL168mN9++43Ro0ebMCJBEISmY9aJXSfpyC/Vv+v+62C3EwnbDdvdvAdUe31m4Q32xn2NhIS7vS/tHDsaveeB+EzDdsGbUQ0JW2hEa9asYeDAgWzbtg0AGxsbevXqZeKoBEEQmo5ZD567ufIayFBY2hiO6yQtl9KPAdA34L5q35lrdRoOXdkAQA+/e+jd8d46vVsf8fkeAB6/KwRHm+qnzQnNZ+jQoYSHh+PjY7yQkCAIgjkw68RuaWGFjZUDER3vrXQ8ryTdsB3mO6TaayVJR+f2kZSpiogIqNtj25d2njZsLxga2oCIhTtVVlbGO++8w6OPPkpAQACdOnVi//79dV6tTxAEobUz68Qe4NGDAI+qpXHPJf8OQOf2kTX+wre0UNDD/5463+v5bSf56KD+Xe64UF+xapuJ/Pbbb3zyySfk5OTw6aefAoikLghCm2LWib1cVYKtwqHK8eQ/68aHePap9rqUvEvYW7vgYudVp6Tw08VUQ1L3dLBhy6PDGh60UG/l5eVYWFigUCiYMGECH330EVOnTjV+oSAIghky28FzReW5bD/zEacTd1c6rtGpDdueTlUHwxWUZfH7xXX8fnFdnXt6E9bonwBYymWkvz5dVJhrRteuXWPYsGG89957gL53Pnv2bOzs7EwcmSAIgmmYbQaKzzpNubqYkorKi3nsvvAFAO4OftVedzxhOzpJS3e/YXW6T1J+qWG7aOWDDQtWaDAvLy9UKhUVFRWmDkUQBKFFMMtH8ZKk41zyXqBqr7yoPBuAHjUkbv3nMkK8qn9M/1cqrRaAyd07YG1p0bCAhXqJjo5GqVQyYMAAHB0dOXToEA4OVV+5CIIgtEVmmdiT8y4atru0v6vSZxVqfQ+7g3v1o9Yr1GW4O/gYXblNf66WLiv186NdbMXUtuaQlZXF+PHjadeuHSdPnsTa2lokdUEQhNuYZWJPzdcvwdrVu3+l9+Qnr+srwjnauFdbQS6rKBGtTo2tVd0Sxaz1hwzb40Krf7QvNA6dTodcLsfT05Ply5fTpUsXUd9dEAShGmaZ2L2cAsgoTCDEM6LScbVG/x62ukFzACpNOR3dwwnx6mv0HpIksTUmGYANDw9hcvcOdxi1UB2NRsM777zD5cuX+frrr5HJZDzxxBOmDksQBKHFMsvEHuTZiyDPqmVDM4oSAIjoWH3BGT+3rvi5da3TPU6n5Bm2p/U0XmpWaBi5XM7Jkye5fv06WVlZeHl5mTokQRCEFs3sRsVrdZoqI+EB1BolReU5ANXObS9VFtb5HpIkEfkv/WN9kdQbn0ql4tgxfclfuVzOqlWrOHz4sEjqgiAIdWB2if3QlQ1sPPUO55P3VTp+JH6zYVsuqzx6vVRZwMaT73Dk2pY63WP8n/PWARYND7uDaIXqPPjgg0yePJnLly8D0L59exwdHU0clSAIQutgdo/ib/a8fVw6GY7pJB3Xs88BML7n3CrXxKYeRkJHO0d/o+1fyizkl0tpAGycM5QIP/fGCFu4zWOPPYa/vz/e3t6mDkUQBKHVMbsee3ZxEgDuDrdW8/rjyo+GbY+/JO/iilwupR/FTuFEYLueRtt/4JsDhu1J4cb/EBCMu3DhAnPmzKG8vByAcePG8a9//QsnJycTRyYIgtD6mFViz/tz7XWFhY1hOpskScRn65dvDfcbWuWaI1e3oJO0hPkOxlJe+1z0jw9eJDZD/0QgZuEEsbhII/n+++/Zvn07v/zyi6lDEQRBaPXM6lF8/J/rr7vY3RpklZB9xrDdN+C+SueXq0pIL7yGncKZrt79jbb//n794jHh7V0Ibe/SGCG3WSkpKfj56ef+L1myhJEjRzJs2DDTBiUIgmAGzKrHbmNlj6VcQe/b1l8/kbATgF4dRlY5Xy6TE9iuJ13aR2Ihr/1vnNiMAlILywA4+8L4Roy67dmwYQN9+vRh165dANjZ2YmkLgiC0EjMqsfe3W8onbz6YmNlD+gH0ik1+mRc3WN4ays7evqPwE5R+7vccrWGHu/tAEAuk4lH8HeoV69e+Pr6Ymtra+pQBEEQzI5Z9dgBQ1IHOHzlBwAUlrZV3p/nFCdTVJ6Di50nCkubWttcH33dsJ29/IFGjLZt0Gg0fPzxxyQn6yv1denShRMnTjB8+HATRyYIgmB+zCqx7437mpiU/YB+0Fx6YTwAo8MrlyCVJB0HLn9PXNrhOrV7Pa8EgMUjwnGxVTRewG3Er7/+ymuvvcbrr79uOGZpaVYPiwRBEFoMs/ntqlSXkZx3EaWmjO5+wyhVFhg+c3fwrXTu9ezzFFfkUqH2/WszlfxyKZVx/71VjGZM19rPF27RarXodDqsrKwYO3YsK1as4MEHxXr1giAITc1seuwp+foqZRqtCoC0Av0Kb/5u3aqceyFVPxe9Ww0j4cvVGiz+sa5SUh8X6ksvX9dGjdlcpaSkMGbMGD744AMAZDIZzzzzDK6u4vsnCILQ1Mymx35zDfZOf67MdnNOe3vnoErnJeXGkVeajpdTIF7OgdW2FbTiVmnZuzp4sOtvw3G1E0uE1pWTkxPp6ekkJSUhSZIYbCgIgtCMzCax55Xoy7wGtuuFUlPGpfSjALRzrLycamyqfg31UJ+B1bZzNbuIrBL98q57nh7J8E6irGldXLt2jfz8fPr164eTkxP79+/Hw8PD1GEJgiC0OWaT2OVy/cIuNlb2/BrzX8Px20vISpIOBxtXLC0UdPQIr7adEZ/vAfQ9dZHU6yY/P5/hw4fj6urKsWPHsLW1FUldEATBRMwmsffwH45Gq0SSdIbR8KPCHkMuuzWMQCaTM7hz7dPVXGytSC2Ez6ff1aTxmhNXV1cWLlxIhw4dxNx0QRAEEzObxB705wIuCdlnDcd8XTvXq43fr6YTm1GIq62Cnj5ujRqfOdHpdKxevZozZ86watUqZDIZzz77rKnDEkxAo9Gg0+lMHUa1VCqVqUMwe+J73DjkcnmjTgE2i1Hx5aoS8ksz0Om05P75rj3YM6LSOSUV+fx0/nNO3/i12jYkSWLUqt8A0EpS0wZsBnbt2sXevXtJTU01dSiCiRQXF7fYX+zBwcGmDsHsie9x41GpVBQXFzdae2bRY0/Ou8iRa5sI9RlkKDrz1yVYjyfsIKsokY7u1b9bf29frGE7b8WMpgu2ldLpdMTGxtK9e3fkcjmff/45CoUCT09PU4cmmIBGo8HCwgI7OztTh1IttVqNQiGKSTUl8T1uPAqFgrKyMjQaTaP03M2ix56af6nKsdunuZUqC0jOi6OdY4caR8Mv3qVfBe7pAZ3F9KxqPP7444wePZpr164B4OfnJ5J6G6bT6UT1QEFoRBYWFo32Wsss/mWW/FllLqsoEdA/hr+9Nvyl9GOA/p27TFb1b5kfzyUatv89JbIpQ221Jk2ahFqtxsmp9gVzBEEQhPprzA5lk/bY33rrLWbMmEFUVBTnz5+v9NmxY8d44IEHiIqKYvHixXf0l0puif49783FXPoFjjN8VlSeQ2zqIWTI6exVfdJevvscACM7e4ve+p+SkpKYP38+FRX6Of33338/69atE710QRCEFq7JeuwnTpwgMTGRDRs2cO3aNRYvXsyPP/5o+HzZsmV88803tG/fnueee45Dhw4xdGjVpVWNUWrKDds6SQvoV3O7KbckFRsre7r7DcXOumpvc9uFZGIzCgFYOa53ve9vrlavXs26deuIjIxk1qxZQOP+RSkIdyolJYUJEyYQHq4fN6NSqejcuTOvvfYaAOXl5axcuZLz589jaWmJh4cHy5Ytw8fHB4AbN27w1ltvkZeXh06no3fv3ixatKhO74137NjBv//9b95880369u1b43nHjx9n/fr1fPzxx3f+Bf8pPT2dF198Ea1WS7t27XjvvfeMxrx06VJiYmLYunWr4djw4cPZsWMH9vb6FTFTUlJ47rnn2Lx5MwBbt27lm2++QaFQoNFoeOKJJxgzZky9492+fTtff/01crmcGTNmMG3atEqfP/fcc+Tn5wNQUFBAr169eP755xkzZgydO+tnNrm6ujbq99DcNVliP3r0KCNHjgQgJCSEoqIiSkpKcHBwAGDz5s2GbTc3N8N/2PpS/ZnYvZ2DSS+MR4as0tz1wHY9ayxGAzDlq/0A9PZ1o7dv257iVlRUZNhevHgxffr0YdKkSSaMSBBqFxgYyLp16wz7L730Ejt27GDUqFGsXLkST09PQzI7deoUf/vb39i6dStyuZxnn32WpUuXEhkZiSRJrFixgk8//ZQFCxYYve+RI0dYuHBhrUm9qXz88cfMnDmT++67j3fffZeNGzcyc+bMGs9Xq9Xs27cPhUJBfHx8nUazR0dHs379etauXYuTkxO5ublERUXRuXNngoKCjF5/U1lZGZ9++ikbN27EysqKSZMmMXLkSFxcXCp9PTctXryY6dOnU1ZWRp8+ffjss8/qfC/hliZL7Dk5OYSFhRn23d3dyc7ONiTzm/+flZXFkSNHmD9/foPu42jjxkMDlpOQdZb0wngkbk1VkyQdMpkcucyi2mt1ulvn/v7MqDbdI921axdPPfUUX3zxBaNHj8be3p7JkyebOiyhlXhxRzQbbxur0him9ezIuxP61OuaHj16kJiYSGlpKYcOHWLPnj2Gz/r27UuPHj3Yu3cvdnZ2BAUFERmpfz0nk8lYuHAhcnnlt5NqtZply5aRnJyMSqXiueeeQyaTcfDgQS5cuICTk5OhDYA333yT8+fPI5fLKy1TDPDll1/y66+/otPpGDp0KPPmzQxmmnAAACAASURBVCMuLo7XX38dhUKBQqHgww8/JCUlpcqx28e2HD9+3ND2iBEjWLt2ba2J/eDBg4SGhtKtWzd++umnOtWc+Pbbb5k3b57hvu7u7mzatKnKGJvbe9sAVlZWfPnll4b9c+fO0b17dxwdHQ3/DU6fPs3w4cOr3DMhIYHi4mJ69OjBlStXjMYo1KzJErv0l7ng1S0Gkpuby9NPP82yZcvqtPLXhQsXavwsUakfIOck9yU6OhpJ0nFF+SuOcm+8rXpWm7SjM0sB8LSz5GpsjNH7m7Py8nIUCgWxsbGiHGwziI6ONnUIdyw4OBi1Wg3oE+Bf/83fKbVaTWlpaY2fl5eXo9PpDOeo1Wp2797NtGnTSElJoUOHDiiVSpRKZaWYL1++jK2tLcHBwVXa12q1hq8JYOfOncjlcv7zn/+QnZ3NE088wbZt2+jfvz8jRowgLCzM0Mbx48dJTk7myy+/JDo6mm3bthEZGYlGo6G0tBSVSsV///tf5HI5EyZMYPr06WzYsIEpU6Ywfvx4Tpw4QVJSEj/++GOVY4GBtxasKisrQ61Wo1arsbe3JyMjo9bv09atWxkxYgTdunXjhRde4LHHHgP0MxvKysqq/X5eu3aNjh07VmrXwsKiyn1WrlxZ5X63n5Oamoqjo6PhmLOzMykpKdXG++WXXzJt2jRKS0vJzc0lPj6eJ598koKCAqKiohg9enSNX6M5UKvVxMfHN0pbTZbYvby8yMnJMexnZWVVShglJSX87W9/Y/78+QwaNKhObYaHh2NtXXmVtZPXd2FlYU1Ziv5eY/rOwU7hSEFZFhdOl+DsZk/fLtU/LluzUf/HwNiwjvTpU7+eQWsnSRLr169n2LBh+Pn50adPH3x8fBgwYICpQzN70dHRrf7n7WZhmpvvdj+ccjcfTmneGGxtbUlMTOTpp58G4PLlyzzxxBOMHz+e06dPI5PJDO+Pb7KyssLW1haFQmFIjLW5evUqAwcOxN7eHnt7e6ysrFCr1VhaWmJjY1Pp+vj4eCIjI7G3t2fIkCEMGTKE48ePY2lpib29PU5OTjz11FNYWlpSUFCAWq1mzJgxvPbaa6SnpzN27Fg6d+5McXFxlWO3k8vlhvva2tpiYWFR49dRVlbGiRMnWLlyJQ4ODlhbW5OYmEhoaChyuRw7O7tq25LL5VhbW9f6/SktLTX6/VMoFFhZWRnOq+77Bvqfp3PnzrFixQoAgoKCmDdvHuPGjSM/P58HHniAQYMGmfXgXZVKRffu3SuNl1AqlbV2aGvSZKPiBw4cyK+/6qu8xcXF4enpaXj8DvD222/zyCOPNGjA3E3lqhJiUw9xNuk3LCz0f6PYWOl/YArKMgBwd/Ct8fqbjw4fjKh++VZztmfPHp577jlefvllw7G//tEkCC3dzXfs69at4+677zb0bP38/Lh+/XqVyniXLl0iODiY4OBgYmIqP6VTqVTVPgK+/UmETqer8rj+ptrmIaemprJ27VrWrFnDunXr8PXV/17q378/GzduJCgoiJdeeoljx45Ve+x2tra2htkqmZmZtSa7PXv2oNVqmTVrFvfffz/5+fns3LkT0A9Iu73aWV5eHu3atQP0Tzb+OpMpISGhUg8f9I/iZ8+ebfjfzacBN1XXwbt5j9udPHmSHj16VLpuwoQJyOVy3N3dCQ8PJyEhocavU6isyRJ7REQEYWFhREVFsXz5cl599VU2b97Mnj17KC8vZ+vWrWz8//buPCyq6n/g+HtYRhZBRFlEcaPcc8kVdxQ3TNO+KpCguYeYZv5UEBV3zTVFMzMtc8mlUBMN/WYuGYoL7mYaLiEqOyL7APf3x3y5MrIbCIPn9Tw9TzNzl8MR5nPvued8Pj/+KP9C7Nmzp9jn+Oup+he+VtVGpKmSqGpkjY5CB0mSCI1U54yvamSd576fHrhAbLL6j96+zpsx9CxJEpmZ6pUDvXr1YsaMGSxevLiMWyUIJWP69OmsXLmSlJQUjI2NcXBwYP369fLnISEh3Lp1i+7du9OpUyfCw8P57bffAHXAXrFiBUeOHNE45jvvvENwcDCgno2uo6OTby6HnNtmPzvPFhcXh7m5OcbGxty8eZPw8HBUKhU7duwgPj6egQMHMnLkSP78888838upY8eO8k3TsWPH6NKlS759EhAQwPLlyzl48CAHDx5k9+7dBAYGIkkS9vb28sRCSZL48ccf6dq1KwAjRoxg/fr1xMTEABAVFcWUKVN4/PixxvHXrVsnX1ht375d4/k6QIsWLbh+/ToJCQkkJSUREhKS54TD69ev06hRI/n177//zsqVKwH1qMPt27c1HkcIBSvVBDX/93//p/E65z/cqwwvvCwu6QkAZoaWPIq7jSpTHajjkp8SFnsLU0MLjQx02UIexeD3uzpbXc0qRhhX0s+1TUUTGRnJJ598Qrt27Zg2bRoKhQIvL6+ybpYglBhbW1v69OnDxo0bmTBhArNmzWLVqlUMHDgQpVKJhYUFX3/9Nbq66sm0W7ZsYe7cuaxfvx6lUknHjh2ZNGmSxjH79+/P+fPncXd3R6VSsWDBgnzP37ZtW44fPy5PZPP19SU+Xp08q3HjxhgbG+Pi4kLr1q1xcXFh/vz5jB49milTpmBiYoJSqWTp0qXcunUr13s5ffLJJ8ycOZM9e/ZgY2Mjr1yZOnUqS5cuxcBAnc8jLi6OO3fuyMEa1CMZtra2hISE4OnpyaJFixg+fDiZmZm0a9cOFxcXAFq2bMnUqVMZM2YMhoaG6Onp4ePjw1tvvVWsfxMDAwOmTZvGmDFjUCgUeHp6YmJiwp9//imPGoL6wqF27dryfu3bt+fAgQO4uLiQkZHB+PHjsbKyKta532QKqaRnvJSC7OcMLz9j//3OXkIjQ6hXvQX3o6/SwKodHd/+gDtPzxP0tz/2doNpWEOz/OqZe5F02/CiEEzmKvfX9nOUpfj4eDp16sQ777zDDz/8kPdkwgrw7FcbVIR+fvkZe3lTlOe/Fc2qVauYMmXKa0v1+yb2cWnK628qv9hXGK1OKRv7v0pu96PVz4LeslJ/Wdas2oBuDT/E0rSOxvYpqgyNoJ64zPU1tbRsPHnyhKioKJo3b46ZmRlHjx6lZs2ab/SyPkGoqFq1aiXy9wuAlgf2rg1diU58xB931RntsifKGVcyo56FWa7t7Rbvl/8/frELhvpa/eMXKCEhga5du1K5cmXOnDmDsbExtWrVKutmCYJQSvJaGy68mbQ6slU1tiIm8RGgTlSjq6NHqioJHYWunDc+p4jn6pmkXw5pj4lBxX6ubmpqyvjx46lWrRqGhoaF7yAIgiBUCFob2FUZacQlRxD7vwl01SvbIkkSZ+7sJTzuDn3fGY9VlRezKAduUc9+bV6jKhPsG+R5TG0mSRI//fQTf/zxB2vWrAHUs4QFQRCEN4vW1mMPi/uTI9e+5O9IdQavxjaduB99lUdxf2FtZqfxfP1ZSjqHb6krwHl0qnhBHdSBfcuWLezbt48HDx6UdXMEQRCEMqK1d+zRz8MAyMpSr8uuamTF7SdBALSrN0Cj7npIeCwAZoZKxlegu3VJknjw4AH16tVDR0eHjRs3IkkSdevWLeumCYIgCGVEawN7mkqdASkjKx2FQgd9vUrEJUegp6OPmdGLzEZRiak4blQXgujT0KZM2lpaPvvsM/bt28fvv/9OvXr1REAX3ihvatlWgO3bt7Ns2TLOnz9fpCVnomzrm0V7A3vGi9SGejr6pKqSiE+KwMLEVuNufcahF8U2Vr//+ksslqbOnTvz119/5ZviUhAqujexbOuBAweIjo4uct50Ubb1zaO1gT05/UXtcAP9ysQkhqOvq8Ta7MUvrSRJfH9RnV84YGwPrE21e3Z4dHQ069atw8fHh0qVKvHBBx8wePBgEdiFMnfh/hEeRF8rfMNiqFu9OW3rORVrnzehbKujoyOVK1fm0KFDReoTUbb1zaO1gV1f90UWHnNjG2pWbYBLh7lkZL4o+pCdNhbAvm7uwgPaZt26daxfv546derIKRpFshlBUFOpVBw/fhxXV1cePXpE/fr1cyVsady4Mffv38fQ0JDGjRtrfJadijWnw4cPo1Qq2bFjBxEREbi7u8v52fv06aMR1IOCgnjy5Al79uzhwoULHDlyBHt7e43j7dq1Cx0dHXr27MlHH32Ev78/rq6uDBo0iLNnzxIVFZXnezkDas5iWkUREBCAk5MTTZs2ZdKkSUUK7Pfu3dNIAQ7kmSO/sOHx6OhozM3N5dfVq1cnKioqz22///573NzcAPWd/r179/Dw8CAuLo4RI0bg5FS8i7w3mdYG9n7NP+bo9W948uxveQa8jkJHXr9+9XEsUw9eBKBXgxqYGZbP1JeFyZm2ccaMGdStW5eRI0eWcasEQVPbek7FvrsuCffv38fdXZ0WOrtsq6OjIyEhIXLBo5wkSZJzxef1+ctu3LhB+/bqtNRWVlbo6urK+d9fdvPmTd59911AnTe+bdu2clEYUF84uLm5oaenR1xcHPHx8fTs2ZN58+bx4MEDnJycsLOzy/O9V5WcnExQUBALFy6kcuXKKJVKbt26RZMmTfLcPueNQn6V6orj5YzlkiTleTOSnp7OpUuX5PkRNWrUwNPTU6Nsa5s2bSp02daSpJVjuMnpz8mSsqikbwRAraoN+etpMDGJ4fI2Zx+oSwVW0tPh4BiHMmnnv3Xq1Clat27Nr7/+Cqiv1EePHi1/MQnCm+5NLNtaHKJs65tJKwP7hfsBXP3nuPxMLyNLxdm/93Mt7KS8zXfn/wZg8zB7KulpZyCsVq0aycnJhIeHF76xILzh3pSyrcUhyra+mbRyKD4p7Rn3o67Kr7OkDAD0ddXD7X9HJ3AhTP0L2ca22utv4L8QGBhI8+bNsbGxoVmzZly/fp0qVaqUdbMEodx7U8q2bty4kaCgIKKiohg3bhwtW7ZkxowZomyrINPKsq3fnXlRR1yh0KFdvf4E3ztEB7tBNKrRgcDb4fTfrL4S16ayrKdPn2bQoEH0799fYwnP61IRyolqg4rQz6Jsa/kjyrZqN1G2NYc61ZryKO4vAKz/lxs+I0t9rbLEqVWZtas4sieUdOnSBQ8PD3lmqCAIQlGJsq1CNq17xp6qSgLUSWkAjJRVCI+7g5VpPaoYqmdM7rvyEABVCczqLE0JCQl4enrKS0YUCgWLFy/OtQxHEAShMKJsq5BN6wJ71P9yxOso1FemBvrGVDOuScvajvIyivgU9ZBGp3rle2lERkYGx48f55dffinS0htBEARBKIzWjduYGVnSvv4ALj9UZ5RqXKMjzW1fLGdLSlMRcEtdo71O1fL3/CchIYHHjx/TqFEjzM3N+fnnn6lXr55YwiYIgiCUCK27YzcxMKeBdXvSM1MB0NV9cW0Sk5SG6azd8uv61Uxee/sKkpSURJcuXXBzc5PXgzZo0AB9ff0ybpkgCIJQUWjdHbsqI43QyBBAnSM+OPQQdpatsDStg+2CH+Xtjk5wLKsm5svY2JghQ4ZQqVIlEcwFoZRFRUXh5+dX4BK1isLd3Z3k5GSMjIzkybi+vr7y8rRDhw7x7bffoq+vj0qlYsKECfTp0wdQPxL84osvOHPmDIaGhujr6+Pj40PDhg3L8kfSEBERQffu3fHz88PRUf3d7u/vz927d5k5c6a8nZeXF3369MHBwYHo6GgWLVrEP//8g46ODnXq1MHX1zffPAT5ef78OdOmTeP58+cYGRmxatUqjSI2mZmZzJ07lwcPHqBSqfjwww8ZNGhQnlXrFi5cWAK9UTitC+wHLq8hKe0ZABYmtfnr6TmqGltTxagWaRnqyXK3Zg6koWX5WPt94sQJjh8/zqJFiwB1+URBEEqfhYXFGxHUsy1dulQucxocHMzChQvZtm0bV65c4bvvvmPr1q2YmZmRmJjIuHHjMDU1xd7enm+++YaEhAT279+PQqEgJCSESZMm8csvv5SbWfYBAQHUqVOHw4cPy4G9MDNmzGDw4MEMGDAAgG+++Yb58+ezatWqYp1727ZttGvXjrFjx7Jz5042b97M9OnT5c9Pnz5NSkoKO3fuJDU1FUdHRwYOHJhn1brXpXz8qxVDekYqoF7OpspMA8DG7C0OXA+TtykvQV2SJJYtW8bly5cZMWKE/EcnCMK/5+/vz4ULF4iLi+Pu3btMnTqVgIAAQkNDWbhwIbVq1ZLri//xxx+sXr0aXV1dnJyc+Oijj+jduzddu3alWrVqDB48mFmzZqFSqeTVKba2thrnCwoKYu3atejr62NqasoXX3zBp59+yqhRo2jbti2pqak4OTnx3//+l3Xr1nHx4kUyMzNxc3Pjvffew8vLC319feLj41m6dCnTpk0jOTmZ1NRU5syZQ/PmzTlw4ABbtmzBxsYGKysrWrZsyfvvv8+cOXMICwsjIyODyZMn5you87IWLVrw8KF6ddC2bduYPHmyfJdZuXJlPvvsM7755hvs7e3ZvXs3P//8szz5+N133+Wnn37KFdQPHDjA9u3b0dHRYdSoUXTr1o327dvL2fYmT57M8OHDOX/+PGFhYTx69AhTU1PGjBlTpP4pSEBAAHPnzmXq1KnyyERBQkNDSUhIkIM6wKhRo0hNTdXY7uTJk2zZskXjvWHDhmnsd/bsWZYsWQKoK+t5eHhobF+1alUSEhLIysoiOTkZY2NjjbTDOavWvS5aF9h1dXRR/W8CeXJaPLo6elQ2MCf4n/sATO1W9kvFIiIisLKyQqFQsGHDBpKSkkRQFyq8fReW5fl+s5rdaGyjDkSn/9pDRML9XNtYmNSmeyN1xrY7T89zNew3hrb1yrXdyx48eMCuXbvYt28fmzZt4sCBA/j7+xMYGMjYsWMB9QX2/Pnz2b17N1WqVGHixIlyRrOuXbvStWtXvL29GTJkCE5OTgQGBrJ+/Xo+//xzjXM9e/aMlStXYmtry4wZMzhz5gy9e/fmt99+o23btvzxxx907tyZy5cvEx4ezs6dO0lPT2fw4MHyXWaVKlVYuHAh9+/fZ+jQoTg6OnL27Fk2b97M2rVrWb16Nf7+/hgZGfHee+/RsmVLDh06hIWFBUuWLCE2NpaRI0cWWrI1MDBQLvRy7969XEtos6vcPX/+nEqVKuUann75dWJiIhs2bODQoUOkp6czc+ZMunXrlu/5VSoVu3bt4sCBA0Xun7yq62W3//nz53Ts2JH27dvz22+/FXohcP/+/Vw/s66ubq6EOt27d6d79+4FHitnhbrq1asTGRmp8XnLli2xsbGhZ8+eJCYmyhcB2XJWrXtdtCqwS5Ikr2MHSEiNwbpKfXQUOvx8Qz0T/oN3aue3+2uxYMECvvnmG37//Xfq1KlT7BSMgiAUXbNmzVAoFFhYWNCwYUN0dXWpXr06iYmJ8jaxsbFUqlRJ/nLetGmT/Fn2XdSNGzeYNm0aoK4ZvmHDhlznMjc3Z/bs2WRmZhIWFkaHDh1wdHRky5YtzJw5k+PHj9O/f39CQkK4evWqXHUuKytLLlWafb7q1avz5ZdfsmXLFtLT0zEyMiIuLg4TExOqV68OQIcOHQC4fPkyly5dIiREPbcoLS2N9PT0XFn/vL29MTIyIjIyklq1ammkon25OI0kSfJdZVGW2t67dw87OzsMDAwwMDBg48aNJCUl5bt99s/Zo0ePIvfPyyMk2Q4dOkT//v0BeO+999i/f3+BgT175KGklhDnTM6aV3W6ixcv8uTJE/773/8SExPDiBEj6NatG0qlMlfVutdFqwJ7lvTiH0qpa0h6Zgp1q78DgJFSvVysgUXxJkaUtIYNG2Jra5urCpIgVHRFucPu2tC50G0aWLejgXW7QrcDNIaL83serKOjk2/VtexJrAqFQv4Cz67gdvnyZVavXg3AypUrmTVrFl9//TV2dnbys3tTU1MsLS0JDQ3lypUrLFiwgLt37zJkyBAmTJiQ7/m2bduGlZUVK1as4Pr16yxfvjxX0MgOvPr6+nz88ceF3qVmP2M/ceIEe/fulUuc2tnZcePGDaytreVt//zzT9566y1MTExQqVRER0fLFxSgLkHbpEkTuT0F9WE2lUqV6+csbv/k5ciRIygUCk6ePElWVhZhYWEkJCRgbm5OQkKCxrbZFeoMDQ1Zu3ZtrmNlp2fNVpSheCsrK6KiojAxMSEiIiJXdbqQkBDs7e3R09PDysoKMzMzIiIisLW1zVW17nXRquVuaTnu1s2MLKlVtRF2lu+SlpHJzafPqGqopHrlvIdzSktiYiKrVq2S8/wOGzaMEydOiOxxglBOVK1alczMTCIiIpAkiQkTJuQKCDkrs124cIFmzZrRqlUruWqZlZUViYmJ1KhRg4SEBIKDg+VA5ujoyKZNm2jZsiV6eno0b96cEydOkJWVRVpaWp4zoePi4uSiJ7/++isqlQozMzPi4+N59uwZqampnD9/HlA/L88u3RwTEyNfbOTHwcGB9PR0Tp48Cagrtfn5+REbGwuov7PWrFnDRx99BICbmxtLliwhI0NdTOvSpUt4eXlplLytX78+9+/fJykpibS0NEaNGiVfiKSkpJCSkpJvFbpX6Z9s165dw9jYmMDAQA4ePMihQ4fo168fx44do3nz5ly6dEn+uR48eMCjR494++23qV+/PtbW1uzcuVM+1rfffsu2bds0jt+9e3eN6nTbt2/XCOoAnTp1IjAwEIBjx47RpUsXjc/r1KnD1atX5b7NGfxfrlr3umjVHXslfWPsLFsRGnmZZrW6UrtaUwD+iVMH/LiU9IJ2LxVr1qxhzZo1GBkZ4eHhgUKhKLeFMQThTeXr6ytXEuvXr1+uZ8iTJ0/Gx8eHvXv3oq+vn+s5KcCHH36Iq6srdevWZezYsfj5+eHg4ECvXr1YvHixPHz/7rvv0r59e5ydnZEkSa72ltP777/PzJkzCQwMZPjw4QQEBHDw4EE8PDwYPnw4derUoVmzZujq6tKvXz/OnTuHi4sLmZmZuSrQ5cXb2xtPT0/s7e3lSm1jx46Vl7tNnDhRLp86duxYvvrqKwYPHkyVKlUwMTFh48aNGkVHjIyMmDx5MqNHj0aSJEaOHIlCocDV1ZVhw4ZhZ2dH06ZN82xLUfvn9OnTPHr0SKO/AgIC+OCDDzSO95///IcNGzYwZMgQ5syZw6RJk9DV1UVPT48VK1bI379r1qxhwYIF7Nu3DwMDAxo3biyvTioOd3d3pk+fzocffoipqSkrVqwAYPHixYwYMYJevXrxxx9/4OrqSlZWFtOnT5fnC7xcte510brqbtceH+dm+Gn6t/DEwkT9TObGkzharAzArXV9tn3YqdTbo1Kp5KGmhIQENm/ejKenZ76TP7RFRag6pg0qQj+L6m6lIzAwkA4dOmBmZsaYMWOYNGkSrVqVz2JWJd3HSUlJfPvtt0W6cKmISrK6m1YNxSemxnHnqXp46vy9Q6SkPwdgzSn1EFBsclqpt+HSpUvY29tz4sQJQP0Madq0aVof1AVBKHspKSmMHDkSFxcXateuXW6DemmIiorCycmprJtRIWjVUPyF+4dR/S+VbHxyBJX0jfH8KZjvLoQCMLKtXam3QU9Pj0ePHnH9+nUcHBwK30EQBKGIBg8ezODBg8u6GWWibt26Zd2ECkOrArtC8WKAoXrlWugodPgq6A4A9cwrM6hZ3ssl/q1z585Rt25drK2tadGiBZcvX6ZGjRqlci5BEARB+De0aig+p8oGVQl+GCW//ttnMHq6Jf/jnDt3jv79+2ukEBRBXRAEQSivtOqOXZ1OVq26ST2arFAvQbCvY5HfLv9au3btcHNzw9XVtdTOIQiCIAglRasC+/PUaPn/nTZfB9RJaY6M71Fi50hJSWHp0qVYW1szceJEdHR08kx0IAiCIAjlkVYF9ux1eUo9Y8KeqTMiHRzjgKlByS25SU5OZs+ePVSvXp3x48eXm+pGgiAIReHn58ehQ4ewsrJSp+FOTWXChAn06tULUGdfW758OSkpKahUKnr27MnEiRPR1VXfKB04cIDvv/8epVJJRkYGY8eOpW/fvmX5I+XSp08funXrxqxZswB49OiRXPAnW86yriVZmnbJkiVcvXoVhULBrFmzNDLLRURE8H//93/y67CwMKZNm4ZSqWTlypVy9r+OHTvmKiZTkrQsaqlD+1fBpmRKOhjq6/Jek1r/+qipqak8efKEevXqUa1aNfbt24ednZ0I6oIgaKURI0bIhUfi4+MZNGgQXbp0ISMjg2nTprF27VoaNWqEJEksXrwYPz8/Pv30Uy5dusTOnTv57rvvMDU1JSYmBhcXFxo0aED9+vXL+KdSu379OqBe8+/l5aVRSS0/JVWa9vz58zx8+JA9e/bw999/4+3tzb59++TPrays2L59O6Cuc+/u7k6PHj04duwYw4cPl7P9lTatilz6ugaoMpIJ+qcqAPdnf1DIHoVLTU2lZ8+eZGRkcPLkSQwNDcskt68gCMVTWNnWDh06sHTpUq5du0ZaWhqurq4MHTqU8PBwvLy8yMzMxMbGhs8//xwfHx+5pOrq1auZO3cuYWFhpKenM3nyZDp37qxx7qdPn8oTajMyMvj888/57bffSExMlBOsuLu7M3v2bB4+fMjWrVvR09OjWbNmeHl54e/vz+nTp4mMjGTNmjVs3bo1Vztv376Nl5cXJiYmtG3blsePH7Ns2TJ27tzJoUOH0NHRwdHRkdGjRxfYT2ZmZlhYWBAVFcWZM2fo2bOnnOZUoVDw2Wef0adPH6ZMmcKOHTuYNGmSnJmvWrVq/PTTT7ky9d26dYu5c+eip6dHq1atmDlzJu7u7syZM4cGDRqwY8cO4uLiaNeuHVu3biU5ORkHBweSk5OL1D8FCQgIYOjQofz6669cuHCB9u3bF/q7UpTStC/fbYM61fCMGTPk12fPnpUr9b311lskJCSQmJhI5cqVc51z//799OnTB2Nj4wIL5pQGrQrsGZnpKBS69P2/XQAAFFFJREFUdKoTz8NnNbEogbzwBgYGdO/eHZVKhRYk4ROEcqu8lW1t1aoVNWvWxNvbm9TUVBwdHRk6dKicJ71nz54sX76cGzduAC9Kqh44cAClUsmOHTuIiIjA3d2dY8eOaZw3MjIST09POnTowI8//siuXbsYMWIEkydPZtKkScTHxxMbG0utWrXw8vJiz549KJVKpkyZwqVLlwB48uQJu3fvJj09Pc92btiwAU9PT3r16sWUKVMwNDQkLCyMwMBAfvjhBwBcXV3p27cvNjY2+fbRvXv3iImJwcrKinv37tGiRQuNz42MjORypPfu3cuV2/zloA6wcOFCfHx8aNWqFTNmzCA8PDzf89+5c4ejR48SHR1d5P7JLzNjVlYWgYGB7Nq1CwMDAw4fPlxoYC9qadqcd9v5iY6O1kidW61aNaKiovIM7Pv27WPr1q2A+hHvqVOnOH36NJIkMXPmzFLNIa9VgV0iC0nKxEAviza21QvfIR9Xrlzhl19+wdvbG4BFixblKsUnCEL5V1DZ1kqVKvHs2TNcXFzQ19cnLi4OUN9t+vj4AMh3Yz/88INGCdfsYGFlZYWuri7x8fGYmZnJ57WwsGDRokX4+fmRkJBA06ZN5eAaGRlJUFAQjo6O/P333zx+/JgxY8YA6iDz+PFjQH03qFAo8m1naGioHOAcHBw4d+4c169f5+HDh4wYMQJQp2ENDw/PFdi///57jh49SmJiIunp6axcuVJOVZpXOdOcZVwLq+IG8PDhQxo0aADA8uXLC9y2YcOGKJXKYvVPfoE9ODgYGxsbatasiZOTExs3bmTOnDmFtrc0Srhmv84rdly+fJn69evLAb9Dhw40b96cDh06cPHiRaZPn86hQ4dKpE150arAni0hTY8pDq9W51ySJLy8vDh//jwDBw6kadOmIqgLQgkob2Vbz58/z7lz59i+fTv6+vpyelZdXd08R+ey6z+A5hd4VlYW6enpcv3wMWPGcPToUTp37oyrqyuBgYFyJTVHR0dOnjzJmTNn+PjjjwH1xcfLpUH9/f3l8+XXzpxtyFnCtXv37nLZ2PxkP2OPjIxk5MiR8iSx7BKu77//vrxtUlISz549w8LCAjs7O65du6aRq+PevXtYW1tjZGQkv1fYd2Z2pTjQzH1e1P7JT0BAAOHh4XL7U1JSCAoKok2bNiQmJmpsGxsbi6WlZZFL0xZlKN7Kyoro6BersyIjIzWOme3kyZPY29vLr3M+3m3Tpg2xsbFkZmbKExZLmtYlqJEkuBVpjFPjmsXaL7tMo0KhYO3atezfvz/fakSCIGi/uLg4rK2t0dfX5/jx42RmZpKenk6zZs04d+4cAGvXriUoKEhjv5wlXJ88eYKOjg6WlpZyWc/u3bvLZVclSeL48eNyCdfevXtz6tQp/vnnH5o0aUK9evUIDQ0lJiYGgHXr1hEREVGkdtauXVt+THD69GkAmjZtSnBwMCkpKUiSxKJFi0hNTSU/lpaWDBo0iPXr1wMwYMAATp48KU9AA3UVtKFDhwLqC4L169fL7Y2KimLKlCnyKEM2Ozs7+RizZs0iNDSUypUrExWlThoWEhKSZ3tepX+yZZeiPXDgAAcPHuTgwYPMnTuXw4cPY2xsjLm5ORcvXgTUQ9+BgYF07NgRKFpp2uyh+Jz/5QzqoC7hevToUUA98mNpaZnnMPzL5Vo3bNgg73fnzh3Mzc1LLaiDFt6xP0/XZUTb4gXkdevWsXbtWk6ePImtrS0NGzZ8pWUOgiBoj44dO7J582bc3NxwdHSke/fuzJs3j8mTJ+Pt7c2uXbuoUaMGkyZN4ueff5b369+/P+fPn8fd3R2VSpXn3bGzszOLFi3CxsZGnjR25swZOnfuzD///EPXrl0BMDQ0ZNasWYwbNw6lUkmTJk2wtLQsUjs9PDyYPXs227Zt46233iIxMREbGxtGjBjB8OHD0dXVxdHRsdACVKNGjWLAgAF88MEHvP3223z99dfMmzePpKQkMjIy6N27t3z3nF3idcyYMRgaGqKnp4ePjw9vvaU5Qurj48PcuXPR0dGhZcuW2NnZ4ezszIIFC6hTp06+pUrr169fpP6JiorCz89Po+9Pnz5N69atMTc3l9/r06cPq1evJi0tjeXLl7Nw4ULWrl2LSqVi1KhR8vd8UUrTFsW7775L06ZNcXFxQaFQ4OvrC6hHYExMTOQlhVFRUVSrVk3e7/3338fb25vt27eTkZHB4sWLi3Xe4tKqsq23Uw/zOFFFJcMPmdy1cZH337VrF0uXLuXbb7+VaxALuVWEcqLaoCL0syjbWvquXLmCgYEBjRo1YtOmTQBMmDChjFv1Qmn38eeff87MmTNL7fjlzRtbthXgt3vmhW6jUqnYsmWLPDzm6urK2bNnRVAXBEFrZCdRGT58OOfPn8fZufD5CRVFeno6nTp1KutmaC2tG4q/FG7KwBYFX4+sWrWK5cuXk5yczCeffIJCocjzOYggCEJ51bRpU3766aeybkaZUCqVuXIHCEWndYE9I0vBsBZ1c72flZUlzxz18PAgMTGRkSNHvubWCYIgCELx5bd07lVo3VB8HXNTqhlrPmu4ffs2vXr1kmeOVqlShUWLFuWZWEEQhH9PR0dHY0mTIAj/TmZmZpHS4xaFVt2xSxIMbZl7NntycjLXrl3j1KlT8mxLQRBKj56eHikpKSQnJ6Orq1vuckGoVCqNpUxCyRN9XDIkSSIzM5PMzMwSq0+iVXfsCgXMcFAvdbt9+zaRkZGAegnC2bNni5SBSBCEkmFiYoJSqSx3QR3UWduE0iX6uGQoFAqUSiUmJiYldsxSvWMvqLxdUFAQq1evRldXl65du+Lp6Vno8TKzdNDT1eHKlSv07duX3r178/333wPkWmcpCELpK88VEMvrUryKRPRx+VRqd+w5y9stWrSIhQsXanyenWf5hx9+4Pfff+fvv/8u9JjpmepfoubNm9O/f38+/PDDUmm7IAiCIGirUgvs+ZW3A3Xx+SpVqlCjRg10dHTo1q0bZ8+eLfSYwb/dUzdaR4ctW7bQt2/f0mq+IAiCIGilUhtHK6i8XVRUlEZawOrVqxMWFpbvsbKT4z0MCSMxMVGjWINQstLS0sq6CW8E0c+lT/Rx6RN9XLqyJycWN0FsqQX2gsrb5dXIgibgZGeQWzp/AX/99VcJtlJ4WXbRCaF0iX4ufaKPS5/o49dDpVIVWhMgp1IL7AWVt3v5s4iICCwsLPI9lrGxMQ0aNEBfX79czsAVBEEQhJImSRIqlarYOflLLbB36tQJPz8/XFxccpW3q1WrFomJiTx69Ahra2tOnDjBypUr8z2Wjo5OiS4FEARBEARtUJw79WylWt1t5cqVXLx4US5vd+vWLbm03YULF+Rg3rt3b8aMGVNazRAEQRCEN4ZWlG0VBEEQBKFotCrznCAIgiAIBROBXRAEQRAqkHIZ2JcsWYKzszMuLi5cu3ZN47OgoCCGDBmCs7MzGzZsKKMWar+C+vjcuXMMGzYMFxcXvL29ycrKKqNWareC+jjbqlWrcHd3f80tqzgK6uMnT57g6urKkCFDmDt3bhm1sGIoqJ937tyJs7Mzrq6uLF68uIxaqP3u3LmDo6MjO3bsyPVZseOeVM4EBwdL48ePlyRJku7evSsNGTJE4/N+/fpJjx8/ljIzMyVnZ2fp7t27ZdFMrVZYH/fq1Ut68uSJJEmS9Mknn0gnT5587W3UdoX1cfb7zs7Okpub2+tuXoVQWB9PnjxZOnbsmCRJkjRv3jwpPDz8tbexIiion58/fy45ODhIKpVKkiRJGjVqlHT58uUyaac2S0pKktzc3KTZs2dL27dvz/V5ceNeubtjL41UtIKmgvoYwN/fH2trawDMzc2Ji4srk3Zqs8L6GGDZsmVMnTq1LJpXIRTUx1lZWVy6dIkePXoA4Ovri42NTZm1VZsV1M/6+vro6+uTnJxMRkYGKSkpVKlSpSybq5WUSiWbN2/G0tIy12evEvfKXWCPjo6matWq8uvsVLRAnqlosz8Tiq6gPgbkfAORkZEEBQXRrVu3195GbVdYH/v7+9OuXTtq1qxZFs2rEArq49jYWCpXrsy6detwc3Nj1apVxU7LKagV1M+VKlXC09MTR0dHevToQcuWLalXr15ZNVVr6enp5bte/VXiXrkL7C//8Un/IhWtkLeC+jhbTEwMH3/8MXPnztX4oxaKpqA+jo+Px9/fn1GjRpVF0yqMwr4rIiIi+M9//sO2bdu4desWp06dKotmar2C+jkxMZFNmzYRGBjIr7/+ypUrV7h9+3ZZNLPCepW4V+4Ce0mmohXyVlAfg/qPddy4cUyZMoXOnTuXRRO1XkF9fO7cOWJjYxk+fDiTJk3i5s2bLFmypKyaqrUK6uOqVatSo0YNateuja6uLvb29ty9e7esmqrVCurn0NBQbG1tMTc3R6lU0qZNG5E/voS9Stwrd4G9U6dOHD16FKDAVLQZGRmcOHGCTp06lWVztVJBfQzqZ78jR44UQ/D/QkF93LdvX44cOcLevXtZv349TZs2ZdasWWXZXK1UUB/r6elha2vLgwcPALh586YYIn5FBfVzzZo1CQ0NJTU1FUmSuHHjBnXr1i3D1lY8rxL3ymXmOZGKtvTl18edO3embdu2tGrVSt72vffew9nZuQxbq50K+j3O9ujRI7y9vdm+fXsZtlR7FdTHDx8+xNfXl7S0NN5++23mzZuHjk65u5fRCgX18+7du/H390dXV5dWrVoxY8aMsm6u1rlx4waff/454eHh6OnpYWVlRY8ePahVq9Yrxb1yGdgFQRAEQXg14vJVEARBECoQEdgFQRAEoQIRgV0QBEEQKhAR2AVBEAShAhGBXRAEQRAqEL2yboAgvAkePXpE3759NZYRAsyaNYvGjRvnuY+fnx8ZGRn/Kp98cHAwEydOpEmTJgCkpaXRpEkTfHx80NfXL9axTp8+zc2bN/Hw8CAkJAQLCwtsbW1ZvHgx77//Ps2aNXvldvr5+eHv70+tWrUAUKlU1KhRgwULFmBiYpLvfhEREdy7dw97e/tXPrcgVDQisAvCa2Jubl4m69UbNGggn1eSJKZOncrevXsZPnx4sY7TtWtXunbtCqhz3Ts5OWFra4uPj0+JtHPgwIEaFzErVqzgq6++Yvr06fnuExwcTGhoqAjsgpCDCOyCUMZCQ0Px9fVFV1eXxMREPv30U7p06SJ/npGRwezZs7l//z4KhYLGjRvj6+tLeno6CxYs4OHDh2RlZdGzZ09Gjx5d4LkUCgWtW7cmNDQUgJMnT7JhwwYMDAwwNDRk4cKFWFlZsXLlSs6dO4dSqcTS0pLly5cTEBBAUFAQffr0ITAwkGvXruHt7c2XX36Jh4cHq1atYvbs2fKoxEcffcSoUaN4++23mT9/PmlpaahUKjw9PenYsWOh/dKqVSv27t0LwMWLF1m5ciVKpZLU1FR8fX0xNTXliy++QJIkzMzMGD58eLH7QxAqIhHYBaGMRUdHM2XKFNq2bcvly5dZuHChRmC/c+cOV69e5ZdffgFg7969PH/+nD179mBpacmiRYvIzMxk2LBhdOzYkUaNGuV7rrS0NE6cOMGQIUNISUlh9uzZ/Pjjj1hbW7Njxw6++OILvLy82LlzJxcvXkRXV5cjR45o5Kru1asX33//PR4eHtjb2/Pll18CMGDAAAIDA2nVqhUxMTGEhobSqVMnJk6cyOjRo+nQoQNRUVE4Oztz7Ngx9PTy//rJyMggICCAli1bAurCOfPmzaNRo0YEBASwadMm1q1bx+DBg8nIyGDUqFF88803xe4PQaiIRGAXhNckNjYWd3d3jffWrl2LhYUFy5cvZ82aNahUKuLj4zW2sbOzo2rVqowbNw4HBwf69euHiYkJwcHBPH36lAsXLgCQnp7OP//8kyuQ3blzR+O8Dg4OODk58eeff1KtWjWsra0BaNeuHbt376ZKlSp06dIFNzc3evXqhZOTk7xNQfr374+Liwve3t4EBgbSr18/9PT0CA4OJikpiQ0bNgDqPO4xMTFYWVlp7P/zzz8TEhKCJEncunWLESNGMH78eEBdqnLFihWkpaWRkJCQZ83vovaHIFR0IrALwmuS3zP2adOm0b9/f4YMGcKdO3f4+OOPNT6vVKkSu3bt4ubNm/Ld9g8//IBSqcTT05O+ffsWeN6cz9gLkrMc57p16wgNDeXUqVO4ubnh5+dX6P4WFhbUrl2ba9eu8csvv+Dl5QWAUqnEz89Po6Z0XnI+Y//444+pWbOmfFc/Y8YM5s+fj729PSdOnGDr1q259i9qfwhCRSeWuwlCGYuOjqZ27doAHDlyhPT0dI3Pr1+/zv79+2natCmTJk2iadOmPHjwgNatWxMYGAhAVlYWS5cuzXW3X5B69eoRExPD48ePATh79iwtWrQgLCyM7777Djs7O0aPHk2vXr1y1dhWKBSkpqbmOuaAAQP48ccfefbsmTxLvnXr1vJjhNjY2CKVqPX19WX9+vU8ffpUo4+ysrIIDAyU+0ihUJCWliaf59/0hyBUFOKOXRDK2OjRo5kzZw61atXio48+4tixYyxbtgxjY2MAateuzYYNG9izZw9KpZLatWvz7rvv0qJFC+7evYuzszOZmZl0794dMzOzIp/XwMCAxYsXM3XqVJRKJUZGRixevBhTU1Nu3brFkCFDMDY2pkqVKnh6enLs2DF5306dOjF//nwyMjI0jtm7d28WLlzIhAkT5Pd8fHyYO3cuhw8fJj09HQ8Pj0LbVqNGDcaOHcucOXPYvHkz48aNY/z48djY2DBmzBhmzJjBd999R5s2bZg6dSoGBgZ4eHj8q/4QhIpCVHcTBEEQhApEDMULgiAIQgUiArsgCIIgVCAisAuCIAhCBSICuyAIgiBUICKwC4IgCEIFIgK7IAiCIFQgIrALgiAIQgUiArsgCIIgVCD/D5mglyo7MpWLAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(tuned_rf, plot = 'auc')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "bwyoTUDQEQrm"
   },
   "source": [
    "### 10.2 Precision-Recall Curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:38:20.225023Z",
     "start_time": "2020-05-02T10:38:19.993603Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "4IvchQoiEQrr",
    "outputId": "fdff2076-86fc-42f5-beee-f0051ea30dd4"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfYAAAFnCAYAAABU0WtaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdd3gUVdvA4d/sppGEloSE3gklSAs9QSAQE1BEBSWggtjw1VcF1E/BAq8odgFRio1ixUJR6RY6SBGR3ktCSSckpOzuzPn+2GQlJoSoLJtsnvu6csHMnp159mQ3z54zZ87RlFIKIYQQQrgFk6sDEEIIIcTVI4ldCCGEcCOS2IUQQgg3IoldCCGEcCOS2IUQQgg3IoldCCGEcCOS2IVD8+bNiY6OJjY2lpiYGAYNGsTmzZuv2vE//fRTpk6dWmKZESNGsHfv3qt2zrvvvpvIyEhiY2OJjY0lOjqa++67j+PHj1+1c1yqefPmnDt3joULF3LPPfcUW8ZisTBlyhT69OlDdHQ0MTExTJkyBYvF4pSYSvLZZ58RERHBzJkz//Exfv31V1q3bu2o45iYGGJiYvjwww+vYqSwZMkS7r777qt2vKioKHr37u2IOzY2lptuuumqHb8kX331VaHttWvXMmTIEHr16kWfPn34z3/+w9GjRwFKfC/9G7GxsaSkpKDrOsOHDycqKoqDBw869otyTAmRLzQ0VJ09e9axvX37dtWpUyeVmprqwqj+nbvuukstXry40L73339fDRkyxCnnK6jDb7/9Vo0YMaLYMo8//rh68MEHVXp6ulJKqfT0dPXggw+qsWPHOiWmkgwfPlx99dVX/+oYW7ZsUX379i20Lzk5WfXu3Vtt2LDhXx37UosXL1Z33XXXVTte79691bZt267a8UorKSlJRUdHO7Z/+eUXFRER4YjFMAz15Zdfqs6dO6uUlJQS30tXw5kzZ1SLFi2UxWJx2jnEtSUtdnFZ4eHh1K9fn507d5KQkEBkZCSTJ0/mrrvuAmDHjh0MGjSI6Oho7rjjDuLj4wFQSvHKK68QFRVVqOU2ffp0nn32WQCWL1/OTTfdRL9+/RgwYAC//vorYG9Fbd++vVCZ2NhYhg8fzqlTpxzHefHFF3nkkUfo06cPgwcPJikpqdSvq0+fPhw4cMCx/dVXXxEbG0tUVBRjx44lNzcXgLS0NB566CH69OnDgAED2LBhAwApKSncd999jufMmTOn1Oc+fPgwa9eu5bXXXqNatWoAVKtWjcmTJzN48GDA3suwZMkSx3Mu3W7evDmzZ88mJiaG1157jZdeeslRLj09nXbt2pGZmcmRI0e46667iImJYcCAAezevbtILK+//jq///4706ZNY/r06eTl5fHCCy8QExNDv379ePXVV9F1HbD/Xt59911iYmI4c+bMFV9nUFAQ7dq1Y//+/QAcO3aMoUOH0q9fP6Kjo/nhhx8cZZs3b87ixYu55ZZbiIyMZO7cuQAYhsGLL75Ir169GDx4cKHf2fnz53n88ceJiYmhf//+vP/++4WO99VXXzFgwAB69uzJ5s2bGTt2LL179+b+++/HZrNdMf4rHb/gd6Dr+mXr+uLFizzyyCP069ePPn368Nxzz2G1WomLi+PMmTPExsZisViYPn06jz76KB07dgRA0zSGDBnCa6+9hre3d6G4Snrvffrpp/Tr14/Y2FgGDx7M4cOHS9zfvHlzTp8+zd13341hGAwYMIADBw44ep3g8p+NZ555hldeeYUBAwawfPnyK9anuMZc/c1ClB1/bbErpdTAgQPVunXrVHx8vAoLC1MLFy5USimVlZWlIiIiHC2y77//Xt16661KKXvLKi4uTlksFpWZmal69uypdu3apd555x01fvx4pZRSXbp0UQkJCUoppbZt26YmT56slPqzFXX69GkVHh6uTpw4oZRS6qOPPnK0Wt555x3VrVs3lZCQoAzDUA8++KCaMWNGsa/pry12q9WqJk+erO655x6llFK7du1S3bt3V+fOnVNKKfX888+rV199VSml1Pjx49Xrr7+ulFJq7969qnPnziovL0+9+OKL6oUXXlBKKXXq1CkVFhamzpw5U6gOL9fK+vTTTx3nvpy/xnzpdmhoqJo5c6ZSSqnff/9d9e7d21Hum2++UaNGjVK6rqubbrrJ0RLfvn27ioyMVFartcRzzZ49Wz3wwAPKarWqnJwcNWjQIMdjvXv3Vs8991yx8RbXYj9y5Ijq1q2b2r59u1JKqVGjRqnZs2crpZTaunWratOmjaOFGBoaqt544w2llP33cd111ymbzabWrFmjbrjhBpWVlaVycnLU4MGDHS32559/Xj3//PNKKXuPR69evRwt3tDQUDVr1iyllFKvvvqqCg8PV8eOHVN5eXmqR48eatOmTY7XdLkW+5WOX/A7KKmuP/30U/XMM88opezvuxdeeEHt27evUH1dvHhRNW/e3PH+K86l76XLvfcyMzNVx44dVWZmplJKqWXLlqn333//svsLXsfZs2dVfHy8atmypeN8BftL+mw8/fTTasCAASo3N/eycQvXkRa7uKy1a9eSkpJChw4dALBarURHRwOwfft2/Pz8iIiIAOCmm27i1KlTnDlzhnXr1hETE4Onpyf+/v4sW7aM6667rtCxAwMD+fLLLzl9+jQdO3Zk3LhxhR7fuHEjXbp0oUGDBgDcfvvt/Prrr1itVgA6duxInTp10DSNli1bcvbs2cu+jjfeeMNx7bddu3ZcuHCBN998E4AVK1bQp08fQkJCABg6dCirVq1yvP6Ca66tWrXip59+wsvLi+eee47nn38egHr16lGjRg0SEhJKVadZWVkEBgaWquzl9OrVC4C2bduilHK0ZFevXk2/fv04duwYp06dYtCgQYC95yUgIICdO3eWeNw1a9Zwxx134OHhgY+PDwMGDGDjxo1Fzlucs2fPOq5TR0ZGMmrUKJ599lnCw8MBmDFjBvfdd58jnry8PJKTkx3PHzhwIABhYWHk5eWRmprKtm3b6NmzJ35+fvj4+NCvXz9H+bVr1zJs2DDA3uMRHR1dKNa+ffsCEBoaSv369WnUqBFeXl40aNCAxMRER7mnnnqq0DX2Bx54oFTHL6iLkuq64N8NGzZgGAb/+9//aNmyZaF6y8rKQilV6vfE5d573t7eaJrGN998Q0pKCv369eOBBx647P7SKOmzAdCtW7ciPQqibPBwdQCibLn77rsxm80opahTpw4ffPABfn5+pKenYzab8ff3B+DChQskJiYSGxvreK6XlxdpaWmkp6dTpUoVx35fX98i55k5cyYzZ87ktttuo1atWowfP57OnTs7Hv/rMSpXroxSivPnzzu2C5jNZnRdJzExkREjRgDQpk0bXn/9dcD+x7sgccTFxdGhQwfHH9LMzExWr17N1q1bAftlhIIvD+fPny90noLXvnv3bt566y3Onj2LyWQiOTkZwzBKVb81a9Z0dOn/UwVd+ADR0dH89NNP1K9fn99++40333yTQ4cOoes6/fv3d5TLyspy1N3lpKWlUbVqVcd21apVSU1NLbR9ObVq1WLFihUArF+/nhdf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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(tuned_rf, plot = 'pr')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "_r9rwEw7EQrz"
   },
   "source": [
    "### 10.3 Feature Importance Plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:38:24.687890Z",
     "start_time": "2020-05-02T10:38:24.554512Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "nVScSxJ-EQr2",
    "outputId": "f44f4b08-b749-4d0e-dcc9-d7e3dc6240c8"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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PPTQQ+3ePbJ8+XIUFhYa7djUMyE+HgwTRERmqM/CRWVlJZRKpfj4rrvuwsMPP9xuGz8/PygUCjzyyCOSHrvtnouWlhaMHTsWv//977F27VosWrSo3XbBwcE4fPgw7r//fuTk5LS7nrR//37JbzAlIiKyRH0SLtzc3FBcXNzl821vLx0wYAA+//xzcTwvLw8A8OCDD+LBBx/sdJ/udLXdO++802FswYIFWLBgAQB0+FwOIiIiMoxJXRbprdzcXCQmJnYYX758OWbPnt33BREREd3BLCJcBAQESPruEiIiIuo9k3krKhEREVkGhgsiIiKSFMMFERERScoi7rnoT4IgAAC0Wum/B6S5uVnyOU0FezNfltwfezNfltyfKfbW9juv7XfgrWRCV8+QQS5fvoyKior+LoOIiKjPjRkzBvb29h3GGS5u0/Xr19HU1ARra2vIZLL+LoeIiMjoBEFAS0sLBg0ahAEDOt5hwXBBREREkuINnURERCQphgsiIiKSFMMFERERSYrhgoiIiCTFz7noI9u2bcM333wDmUyGl156CRMmTBCfKygowK5duyCXyzF9+nQ8//zzXe5TW1uLyMhI6HQ6ODs744033jCJr4LvTX9xcXEoKipCa2sr/vCHP+CRRx7B1q1bUVxcjEGDBgEAnn32WcyYMaM/WhL1tLfS0lKsWbMG9957L4Abb9XatGmTSZ67nvaWnp6ODz/8UNymtLQUxcXFWLVqFRobG2FldeM/KVFRUfD29u7zfm6lr7/m5mZs2rQJP/zwAzIzM/XuY27nrqveLOE111lv5vSaA3ren7m97gAAAhldYWGhEBYWJgiCIJw+fVpYtGhRu+cfffRR4dy5c4JOpxOWLFkinD59ust9oqOjhZycHEEQBCE2NlZITU3tw04615v+Tp48KTz33HOCIAhCQ0OD8PDDDwuCcKO/8vLyPq1fn96eu9dee63DXKZ27nrT2637v/LKK4IgCMKyZcuExsbGvincQN319+qrrwrvvfeesHDhwm73Mbdz11lvlvKa6+q8mcNrThB619+t+5vy664NL4v0gZMnT2LWrFkAgN/85je4dOkSrly5AgCorq7G4MGD4erqigEDBuDhhx/GyZMnu9ynsLBQ/AbYgIAAnDx5sn+auklv+vPz88Pbb78NABg8eDB++eUX6HQ6NDU19VsfnelNb131YGrn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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(tuned_rf, plot='feature')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "FfWC3NEhEQr9"
   },
   "source": [
    "### 10.4 Confusion Matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:38:30.856727Z",
     "start_time": "2020-05-02T10:38:30.698024Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "OAB5mes-EQsA",
    "outputId": "bd82130d-2cc3-4b63-df5d-03b7aa54bf52"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(tuned_rf, plot = 'confusion_matrix')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "deClKJrbEQsJ"
   },
   "source": [
    "*Another* way to analyze the performance of models is to use the `evaluate_model()` function which displays a user interface for all of the available plots for a given model. It internally uses the `plot_model()` function. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:38:50.030540Z",
     "start_time": "2020-05-02T10:38:49.995530Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 436,
     "referenced_widgets": [
      "42d5400d235d40b78190016ef0dabe11",
      "41031579127f4a53b58957e601465083",
      "12bf8b3c6ae8444a900474912589fdf1",
      "9bb3600d38c04691b444ff375ad5e3f5",
      "8886001bc7c1463ba58a8453f5c55073",
      "0a06fb091bd94ce6b6ab892e2c6faadf",
      "3cc1e83b91f34b289c7d52003f20a97a",
      "8d709ec9ec484944b1f9773748857f84",
      "8399e21b17634116861a5abaa9c0ccf7",
      "d5b6fce1763b4b54898ff3397b0f5bb0",
      "57b94ac505d142769b79de2f1e5c1166",
      "2a81017413ca4fe789c2272a5831a069",
      "02771b4dc3284414ab05df1906f4556b",
      "9e338844e75b4e17be8483529f5f38fd",
      "22588a12c0db4067982e62ebbe7e6930"
     ]
    },
    "colab_type": "code",
    "id": "OcLV1Ln6EQsN",
    "outputId": "7b5b8b4e-8d4a-4371-9a4f-cabb0a96265a"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Parameters</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>bootstrap</th>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ccp_alpha</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>class_weight</th>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>criterion</th>\n",
       "      <td>gini</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max_depth</th>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max_features</th>\n",
       "      <td>auto</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max_leaf_nodes</th>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max_samples</th>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min_impurity_decrease</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min_impurity_split</th>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min_samples_leaf</th>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min_samples_split</th>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min_weight_fraction_leaf</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>n_estimators</th>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>n_jobs</th>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>oob_score</th>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>random_state</th>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>verbose</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>warm_start</th>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         Parameters\n",
       "bootstrap                      True\n",
       "ccp_alpha                         0\n",
       "class_weight                   None\n",
       "criterion                      gini\n",
       "max_depth                        10\n",
       "max_features                   auto\n",
       "max_leaf_nodes                 None\n",
       "max_samples                    None\n",
       "min_impurity_decrease             0\n",
       "min_impurity_split             None\n",
       "min_samples_leaf                  2\n",
       "min_samples_split                10\n",
       "min_weight_fraction_leaf          0\n",
       "n_estimators                     70\n",
       "n_jobs                         None\n",
       "oob_score                     False\n",
       "random_state                    123\n",
       "verbose                           0\n",
       "warm_start                    False"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "evaluate_model(tuned_rf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "RX5pYUJJEQsV"
   },
   "source": [
    "# 11.0 Predict on test / hold-out Sample"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "mFSvRYiaEQsd"
   },
   "source": [
    "Before finalizing the model, it is advisable to perform one final check by predicting the test/hold-out set and reviewing the evaluation metrics. If you look at the information grid in Section 6 above, you will see that 30% (6,841 samples) of the data has been separated out as test/hold-out sample. All of the evaluation metrics we have seen above are cross validated results based on the training set (70%) only. Now, using our final trained model stored in the `tuned_rf` variable we will predict against the hold-out sample and evaluate the metrics to see if they are materially different than the CV results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:39:34.256044Z",
     "start_time": "2020-05-02T10:39:34.143454Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "nwaZk6oTEQsi",
    "outputId": "d30c8533-d347-4fa6-f18e-5b2abc937bec"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Model</th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Random Forest Classifier</td>\n",
       "      <td>0.8126</td>\n",
       "      <td>0.7538</td>\n",
       "      <td>0.3212</td>\n",
       "      <td>0.6559</td>\n",
       "      <td>0.4312</td>\n",
       "      <td>0.3345</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      Model  Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0  Random Forest Classifier    0.8126  0.7538  0.3212  0.6559  0.4312  0.3345"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "predict_model(tuned_rf);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "E-fHsX2AEQsx"
   },
   "source": [
    "The accuracy on test/hold-out set is **`0.8126`** compared to **`0.8229`** achieved on the `tuned_rf` CV results (in section 9.3 above). This is not a significant difference. If there is a large variation between the test/hold-out and CV results, then this would normally indicate over-fitting but could also be due to several other factors and would require further investigation. In this case, we will move forward with finalizing the model and predicting on unseen data (the 5% that we had separated in the beginning and never exposed to PyCaret).\n",
    "\n",
    "(TIP : It's always good to look at the standard deviation of CV results when using `create_model()`.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "r79BGjIfEQs1"
   },
   "source": [
    "# 12.0 Finalize Model for Deployment"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "B-6xJ9kQEQs7"
   },
   "source": [
    "Model finalization is the last step in the experiment. A normal machine learning workflow in PyCaret starts with `setup()`, followed by comparing all models using `compare_models()` and shortlisting a few candidate models (based on the metric of interest) to perform several modeling techniques such as hyperparameter tuning, ensembling, stacking etc. This workflow will eventually lead you to the best model for use in making predictions on new and unseen data. The `finalize_model()` function fits the model onto the complete dataset including the test/hold-out sample (30% in this case). The purpose of this function is to train the model on the complete dataset before it is deployed in production."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:41:01.620696Z",
     "start_time": "2020-05-02T10:41:00.182054Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "_--tO4KGEQs-"
   },
   "outputs": [],
   "source": [
    "final_rf = finalize_model(tuned_rf)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:41:03.095568Z",
     "start_time": "2020-05-02T10:41:03.091907Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 147
    },
    "colab_type": "code",
    "id": "U9W6kXsSEQtQ",
    "outputId": "794b24a4-9c95-4730-eddd-f82e4925b866"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RandomForestClassifier(bootstrap=True, ccp_alpha=0.0, class_weight=None,\n",
      "                       criterion='gini', max_depth=10, max_features='auto',\n",
      "                       max_leaf_nodes=None, max_samples=None,\n",
      "                       min_impurity_decrease=0.0, min_impurity_split=None,\n",
      "                       min_samples_leaf=2, min_samples_split=10,\n",
      "                       min_weight_fraction_leaf=0.0, n_estimators=70,\n",
      "                       n_jobs=None, oob_score=False, random_state=123,\n",
      "                       verbose=0, warm_start=False)\n"
     ]
    }
   ],
   "source": [
    "#Final Random Forest model parameters for deployment\n",
    "print(final_rf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "kgdOjxypEQtd"
   },
   "source": [
    "**Caution:** One final word of caution. Once the model is finalized using `finalize_model()`, the entire dataset including the test/hold-out set is used for training. As such, if the model is used for predictions on the hold-out set after `finalize_model()` is used, the information grid printed will be misleading as you are trying to predict on the same data that was used for modeling. In order to demonstrate this point only, we will use `final_rf` under `predict_model()` to compare the information grid with the one above in section 11. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:42:03.609827Z",
     "start_time": "2020-05-02T10:42:03.484875Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "NJDk3I-EEQtg",
    "outputId": "4d75663a-e86f-4826-c8e4-c9aa722648df"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Model</th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Random Forest Classifier</td>\n",
       "      <td>0.8361</td>\n",
       "      <td>0.8189</td>\n",
       "      <td>0.3681</td>\n",
       "      <td>0.7715</td>\n",
       "      <td>0.4984</td>\n",
       "      <td>0.4148</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      Model  Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0  Random Forest Classifier    0.8361  0.8189  0.3681  0.7715  0.4984  0.4148"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "predict_model(final_rf);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "V77JC5JVEQtp"
   },
   "source": [
    "Notice how the AUC in `final_rf` has increased to **`0.8189`** from **`0.7538`**, even though the model is the same. This is because the `final_rf` variable has been trained on the complete dataset including the test/hold-out set."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "hUzc6tXNEQtr"
   },
   "source": [
    "# 13.0 Predict on Unseen Data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "dx5vXjChEQtt"
   },
   "source": [
    "The `predict_model()` function is also used to predict on the unseen dataset. The only difference from section 11 above is that this time we will pass the `data_unseen` parameter. `data_unseen` is the variable created at the beginning of the tutorial and contains 5% (1200 samples) of the original dataset which was never exposed to PyCaret. (see section 5 for explanation)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:43:18.456494Z",
     "start_time": "2020-05-02T10:43:18.337100Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 211
    },
    "colab_type": "code",
    "id": "0y5KWLC6EQtx",
    "outputId": "30771f87-7847-43ce-e984-9963cff7d043"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LIMIT_BAL</th>\n",
       "      <th>SEX</th>\n",
       "      <th>EDUCATION</th>\n",
       "      <th>MARRIAGE</th>\n",
       "      <th>AGE</th>\n",
       "      <th>PAY_1</th>\n",
       "      <th>PAY_2</th>\n",
       "      <th>PAY_3</th>\n",
       "      <th>PAY_4</th>\n",
       "      <th>PAY_5</th>\n",
       "      <th>...</th>\n",
       "      <th>BILL_AMT6</th>\n",
       "      <th>PAY_AMT1</th>\n",
       "      <th>PAY_AMT2</th>\n",
       "      <th>PAY_AMT3</th>\n",
       "      <th>PAY_AMT4</th>\n",
       "      <th>PAY_AMT5</th>\n",
       "      <th>PAY_AMT6</th>\n",
       "      <th>default</th>\n",
       "      <th>Label</th>\n",
       "      <th>Score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>100000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>23</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>567.0</td>\n",
       "      <td>380.0</td>\n",
       "      <td>601.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>581.0</td>\n",
       "      <td>1687.0</td>\n",
       "      <td>1542.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.1917</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>380000</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>32</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>...</td>\n",
       "      <td>11873.0</td>\n",
       "      <td>21540.0</td>\n",
       "      <td>15138.0</td>\n",
       "      <td>24677.0</td>\n",
       "      <td>11851.0</td>\n",
       "      <td>11875.0</td>\n",
       "      <td>8251.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0531</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>200000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>32</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>3151.0</td>\n",
       "      <td>5818.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>9102.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>3165.0</td>\n",
       "      <td>1395.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.1970</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>200000</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>53</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>149531.0</td>\n",
       "      <td>6300.0</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.7300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>240000</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>41</td>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1737.0</td>\n",
       "      <td>2622.0</td>\n",
       "      <td>3301.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>1737.0</td>\n",
       "      <td>924.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.2164</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   LIMIT_BAL  SEX  EDUCATION  MARRIAGE  AGE  PAY_1  PAY_2  PAY_3  PAY_4  \\\n",
       "0     100000    2          2         2   23      0     -1     -1      0   \n",
       "1     380000    1          2         2   32     -1     -1     -1     -1   \n",
       "2     200000    2          2         1   32     -1     -1     -1     -1   \n",
       "3     200000    1          1         1   53      2      2      2      2   \n",
       "4     240000    1          1         2   41      1     -1     -1      0   \n",
       "\n",
       "   PAY_5  ...  BILL_AMT6  PAY_AMT1  PAY_AMT2  PAY_AMT3  PAY_AMT4  PAY_AMT5  \\\n",
       "0      0  ...      567.0     380.0     601.0       0.0     581.0    1687.0   \n",
       "1     -1  ...    11873.0   21540.0   15138.0   24677.0   11851.0   11875.0   \n",
       "2      2  ...     3151.0    5818.0      15.0    9102.0      17.0    3165.0   \n",
       "3      2  ...   149531.0    6300.0    5500.0    5500.0    5500.0    5000.0   \n",
       "4      0  ...     1737.0    2622.0    3301.0       0.0     360.0    1737.0   \n",
       "\n",
       "   PAY_AMT6  default  Label   Score  \n",
       "0    1542.0        0      0  0.1917  \n",
       "1    8251.0        0      0  0.0531  \n",
       "2    1395.0        0      0  0.1970  \n",
       "3    5000.0        1      1  0.7300  \n",
       "4     924.0        0      0  0.2164  \n",
       "\n",
       "[5 rows x 26 columns]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "unseen_predictions = predict_model(final_rf, data=data_unseen)\n",
    "unseen_predictions.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "oPYmVpugEQt5"
   },
   "source": [
    "The `Label` and `Score` columns are added onto the `data_unseen` set. Label is the prediction and score is the probability of the prediction. Notice that predicted results are concatenated to the original dataset while all the transformations are automatically performed in the background."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "L__po3sUEQt7"
   },
   "source": [
    "# 14.0 Saving the model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "1sQPT7jrEQt-"
   },
   "source": [
    "We have now finished the experiment by finalizing the `tuned_rf` model which is now stored in `final_rf` variable. We have also used the model stored in `final_rf` to predict `data_unseen`. This brings us to the end of our experiment, but one question is still to be asked: What happens when you have more new data to predict? Do you have to go through the entire experiment again? The answer is no, PyCaret's inbuilt function `save_model()` allows you to save the model along with entire transformation pipeline for later use."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:44:17.932770Z",
     "start_time": "2020-05-02T10:44:17.889623Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "ln1YWIXTEQuA",
    "outputId": "d3cb0652-f72e-44e8-9455-824b12740bff"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Transformation Pipeline and Model Succesfully Saved\n"
     ]
    }
   ],
   "source": [
    "save_model(final_rf,'Final RF Model 08Feb2020')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "WE6f48AYEQuR"
   },
   "source": [
    "(TIP : It's always good to use date in the filename when saving models, it's good for version control.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Z8OBesfkEQuU"
   },
   "source": [
    "# 15.0 Loading the saved model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "V2K_WLaaEQuW"
   },
   "source": [
    "To load a saved model at a future date in the same or an alternative environment, we would use PyCaret's `load_model()` function and then easily apply the saved model on new unseen data for prediction."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:44:44.538345Z",
     "start_time": "2020-05-02T10:44:44.503301Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "Siw_2EIUEQub",
    "outputId": "5da8b7c9-01f7-469c-f0c9-b19c8ce11bcc"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Transformation Pipeline and Model Sucessfully Loaded\n"
     ]
    }
   ],
   "source": [
    "saved_final_rf = load_model('Final RF Model 08Feb2020')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "1zyi6-Q-EQuq"
   },
   "source": [
    "Once the model is loaded in the environment, you can simply use it to predict on any new data using the same `predict_model()` function. Below we have applied the loaded model to predict the same `data_unseen` that we used in section 13 above."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:44:58.657514Z",
     "start_time": "2020-05-02T10:44:58.549190Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "HMPO1ka9EQut"
   },
   "outputs": [],
   "source": [
    "new_prediction = predict_model(saved_final_rf, data=data_unseen)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-05-02T10:44:59.756416Z",
     "start_time": "2020-05-02T10:44:59.736563Z"
    },
    "colab": {},
    "colab_type": "code",
    "id": "7wyDQQSzEQu8",
    "outputId": "23065436-42e3-4441-ed58-a8863f8971f9"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LIMIT_BAL</th>\n",
       "      <th>SEX</th>\n",
       "      <th>EDUCATION</th>\n",
       "      <th>MARRIAGE</th>\n",
       "      <th>AGE</th>\n",
       "      <th>PAY_1</th>\n",
       "      <th>PAY_2</th>\n",
       "      <th>PAY_3</th>\n",
       "      <th>PAY_4</th>\n",
       "      <th>PAY_5</th>\n",
       "      <th>...</th>\n",
       "      <th>BILL_AMT6</th>\n",
       "      <th>PAY_AMT1</th>\n",
       "      <th>PAY_AMT2</th>\n",
       "      <th>PAY_AMT3</th>\n",
       "      <th>PAY_AMT4</th>\n",
       "      <th>PAY_AMT5</th>\n",
       "      <th>PAY_AMT6</th>\n",
       "      <th>default</th>\n",
       "      <th>Label</th>\n",
       "      <th>Score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>100000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>23</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>567.0</td>\n",
       "      <td>380.0</td>\n",
       "      <td>601.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>581.0</td>\n",
       "      <td>1687.0</td>\n",
       "      <td>1542.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.1917</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>380000</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>32</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>...</td>\n",
       "      <td>11873.0</td>\n",
       "      <td>21540.0</td>\n",
       "      <td>15138.0</td>\n",
       "      <td>24677.0</td>\n",
       "      <td>11851.0</td>\n",
       "      <td>11875.0</td>\n",
       "      <td>8251.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0531</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>200000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>32</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>3151.0</td>\n",
       "      <td>5818.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>9102.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>3165.0</td>\n",
       "      <td>1395.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.1970</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>200000</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>53</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>149531.0</td>\n",
       "      <td>6300.0</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.7300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>240000</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>41</td>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1737.0</td>\n",
       "      <td>2622.0</td>\n",
       "      <td>3301.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>1737.0</td>\n",
       "      <td>924.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.2164</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   LIMIT_BAL  SEX  EDUCATION  MARRIAGE  AGE  PAY_1  PAY_2  PAY_3  PAY_4  \\\n",
       "0     100000    2          2         2   23      0     -1     -1      0   \n",
       "1     380000    1          2         2   32     -1     -1     -1     -1   \n",
       "2     200000    2          2         1   32     -1     -1     -1     -1   \n",
       "3     200000    1          1         1   53      2      2      2      2   \n",
       "4     240000    1          1         2   41      1     -1     -1      0   \n",
       "\n",
       "   PAY_5  ...  BILL_AMT6  PAY_AMT1  PAY_AMT2  PAY_AMT3  PAY_AMT4  PAY_AMT5  \\\n",
       "0      0  ...      567.0     380.0     601.0       0.0     581.0    1687.0   \n",
       "1     -1  ...    11873.0   21540.0   15138.0   24677.0   11851.0   11875.0   \n",
       "2      2  ...     3151.0    5818.0      15.0    9102.0      17.0    3165.0   \n",
       "3      2  ...   149531.0    6300.0    5500.0    5500.0    5500.0    5000.0   \n",
       "4      0  ...     1737.0    2622.0    3301.0       0.0     360.0    1737.0   \n",
       "\n",
       "   PAY_AMT6  default  Label   Score  \n",
       "0    1542.0        0      0  0.1917  \n",
       "1    8251.0        0      0  0.0531  \n",
       "2    1395.0        0      0  0.1970  \n",
       "3    5000.0        1      1  0.7300  \n",
       "4     924.0        0      0  0.2164  \n",
       "\n",
       "[5 rows x 26 columns]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_prediction.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "bf8I1uqcEQvD"
   },
   "source": [
    "Notice that the results of `unseen_predictions` and `new_prediction` are identical."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "_HeOs8BhEQvF"
   },
   "source": [
    "# 16.0 Wrap-up / Next Steps?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "VqG1NnwXEQvK"
   },
   "source": [
    "This tutorial has covered the entire machine learning pipeline from data ingestion, pre-processing, training the model, hyperparameter tuning, prediction and saving the model for later use. We have completed all of these steps in less than 10 commands which are naturally constructed and very intuitive to remember such as `create_model()`, `tune_model()`, `compare_models()`. Re-creating the entire experiment without PyCaret would have taken well over 100 lines of code in most libraries.\n",
    "\n",
    "We have only covered the basics of `pycaret.classification`. In following tutorials we will go deeper into advanced pre-processing, ensembling, generalized stacking and other techniques that allow you to fully customize your machine learning pipeline and are must know for any data scientist.\n",
    "\n",
    "See you at the next tutorial. Follow the link to __[Binary Classification Tutorial (CLF102) - Intermediate Level](https://github.com/pycaret/pycaret/blob/master/Tutorials/Binary%20Classification%20Tutorial%20Level%20Intermediate%20-%20CLF102.ipynb)__"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "collapsed_sections": [
    "Ui_rALqYEQmv",
    "y9s9wNcjEQn0",
    "it_nJo1IEQob",
    "P5m2pciOEQo4",
    "UWMSeyNhEQo-",
    "rWUojqBCEQpb",
    "nSg3OUjuEQpu",
    "XvpjzbGQEQqB",
    "BQlMCxrUEQqG",
    "CD-f0delEQqq",
    "KO3zIfs-EQrA",
    "w_P46O0jEQrT",
    "euqkQYJaEQrY",
    "bwyoTUDQEQrm",
    "_r9rwEw7EQrz",
    "FfWC3NEhEQr9",
    "RX5pYUJJEQsV",
    "r79BGjIfEQs1",
    "hUzc6tXNEQtr",
    "L__po3sUEQt7",
    "Z8OBesfkEQuU",
    "_HeOs8BhEQvF"
   ],
   "name": "Binary Classification Tutorial (CLF101) - Level Beginner (ACN_EDITS).ipynb",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python [conda env:tutorial_env] *",
   "language": "python",
   "name": "conda-env-tutorial_env-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": false,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "02771b4dc3284414ab05df1906f4556b": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "IntProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "IntProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "",
      "description": "Processing: ",
      "description_tooltip": null,
      "layout": "IPY_MODEL_22588a12c0db4067982e62ebbe7e6930",
      "max": 5,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_9e338844e75b4e17be8483529f5f38fd",
      "value": 5
     }
    },
    "0a06fb091bd94ce6b6ab892e2c6faadf": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "12bf8b3c6ae8444a900474912589fdf1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ToggleButtonsModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ToggleButtonsModel",
      "_options_labels": [
       "Hyperparameters",
       "AUC",
       "Confusion Matrix",
       "Threshold",
       "Precision Recall",
       "Error",
       "Class Report",
       "Feature Selection",
       "Learning Curve",
       "Manifold Learning",
       "Calibration Curve",
       "Validation Curve",
       "Dimensions",
       "Feature Importance",
       "Decision Boundary"
      ],
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ToggleButtonsView",
      "button_style": "",
      "description": "Plot Type:",
      "description_tooltip": null,
      "disabled": false,
      "icons": [
       ""
      ],
      "index": 2,
      "layout": "IPY_MODEL_0a06fb091bd94ce6b6ab892e2c6faadf",
      "style": "IPY_MODEL_8886001bc7c1463ba58a8453f5c55073",
      "tooltips": []
     }
    },
    "22588a12c0db4067982e62ebbe7e6930": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "2a81017413ca4fe789c2272a5831a069": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3cc1e83b91f34b289c7d52003f20a97a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "IntProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "IntProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "",
      "description": "Processing: ",
      "description_tooltip": null,
      "layout": "IPY_MODEL_8399e21b17634116861a5abaa9c0ccf7",
      "max": 5,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_8d709ec9ec484944b1f9773748857f84",
      "value": 2
     }
    },
    "41031579127f4a53b58957e601465083": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "42d5400d235d40b78190016ef0dabe11": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "VBoxModel",
     "state": {
      "_dom_classes": [
       "widget-interact"
      ],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "VBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "VBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_12bf8b3c6ae8444a900474912589fdf1",
       "IPY_MODEL_9bb3600d38c04691b444ff375ad5e3f5"
      ],
      "layout": "IPY_MODEL_41031579127f4a53b58957e601465083"
     }
    },
    "57b94ac505d142769b79de2f1e5c1166": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "8399e21b17634116861a5abaa9c0ccf7": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "8886001bc7c1463ba58a8453f5c55073": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ToggleButtonsStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ToggleButtonsStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "button_width": "",
      "description_width": "",
      "font_weight": ""
     }
    },
    "8d709ec9ec484944b1f9773748857f84": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "9bb3600d38c04691b444ff375ad5e3f5": {
     "model_module": "@jupyter-widgets/output",
     "model_name": "OutputModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/output",
      "_model_module_version": "1.0.0",
      "_model_name": "OutputModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/output",
      "_view_module_version": "1.0.0",
      "_view_name": "OutputView",
      "layout": "IPY_MODEL_4f8f81ab97b041a58a53c85a1ab97bd4",
      "msg_id": "",
      "outputs": [
       {
        "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAFlCAYAAAAki6s3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dd3hO9//H8VciS5BIqKhoG0U0RBBa\nas8mUqNWoyqtUVojdCBWqVGqWpRSnd+qWatGkdpVpRQxW3ztmSKR0TQyz+8PP/fXLSKquZOjno/r\nynXlfD7nfM77nPvmdZ9xn9gZhmEIAACYkn1+FwAAALJHUAMAYGIENQAAJkZQAwBgYgQ1AAAmRlAD\nAGBiBDVsokKFCmrWrJmCg4MVHBysZs2aaejQofrrr79ybR3R0dGqUKFCro03ePBg1apVy1LzjZ9D\nhw7l2jqys3r1av3555+W6ePHj6tPnz5q2rSpmjVrptDQUG3atEmSdO7cOVWsWDHXaxg0aJA2btwo\nSZo0aZLq1q2rJUuWWLX/Ez/++KNCQ0MVFBSkJk2aqFevXjp+/Pg/GnPu3LmqU6eOPvnkk3taPjg4\nWFeuXPlHNdywdOlSVahQwfI63XDt2jUFBgZq8ODBOY6xb98+HT58+LZ969at05AhQ3KlVtxnDMAG\nfH19jYsXL1qmU1JSjN69exuTJk3KtXVcvHjR8PX1zbXxIiIijOnTp+faeH9HUFCQZX9FR0cbtWrV\nMubPn29kZmYahmEYe/bsMWrWrGn89NNPxtmzZw0/Pz+b1tOkSRNj27ZtuTbepk2bjDp16hi7du0y\nDMMwMjMzjQULFhhPPfWUceXKlXse96WXXjIWLlyYW2X+I0uWLDEaNGhgvPnmm1btq1evNho0aGBE\nRETkOMbbb79tLFu2zFYl4j7lkN8fFPBgcHJyUr169SxHZsnJyRoyZIh+//13paWlKSgoSBEREZKk\nsLAwNW7cWGvXrtW5c+f05JNP6sMPP5SdnZ0WL16s6dOnq3DhwmrZsqVl/MzMTH300Uf64YcfJElV\nq1bViBEj5OrqqrCwMNWrV08bNmzQ6dOnFR4ervj4eK1YsUL29vb69NNP9cgjj9yx/pzGDwwM1Nq1\na/Xuu++qXLlyGjNmjPbv36/09HT17t1b7dq1kyRNnjxZkZGRkiQvLy9NnDhRU6ZM0cmTJxUWFqbx\n48drw4YNql27tjp27GhZf7Vq1TRjxgyVLFlSmZmZVnWNGTNG27ZtU1pamqpXr65x48bJ0dFRO3fu\n1Pjx45WSkiLDMNSvXz81b9482/awsDC1b99eW7Zs0cWLFzV06FD16tVLK1euVPv27dW6dWvt3r1b\n48aNU0JCgjw8PPThhx/qkUce0dKlS7Vx40YlJiaqUqVKGjRokNX+mzZtmsLDw1W9enVJkp2dnUJD\nQ+Xl5SVnZ2dJ0jfffKMFCxYoMzNTZcqU0bvvvitPT08NHjxYpUqVUlRUlE6dOiUfHx/NmDFD06ZN\n0969e3X8+HFFR0fr/PnzevTRR9W7d29J18+Q3JieM2eO5s6dK8MwVLhwYY0fP17ly5dXhQoV9OOP\nP6pkyZJ/e/0FCxbM8j4JDAzUjh07lJycbOlfvXq16tSpo4yMjDu+9+fPn6/ly5dr48aNio2Nlbu7\nu9U+LVeunFasWKGPP/5YLVq00Mcffyx/f3/t3r1bAwcO1Pfffy9XV9c7vo9xn8rnDwr4l7r1iDou\nLs548cUXjRkzZhiGYRhffvml8corrxiZmZlGXFyc8dRTTxm//vqrYRiG0blzZ6Nz585GcnKykZSU\nZDz99NPGrl27jLi4OKNq1arGsWPHDMMwjDFjxliOqL///nvjueeeM5KSkoz09HSjV69elqPjzp07\nG6+88oqRlpZmbNy40ahSpYqxZMkSwzAMIzw83Jg8ebJhGHc+os5p/G7duhkZGRmGYRjGkCFDjEGD\nBhkZGRlGTEyM0aBBA+PIkSPG0aNHjWeeecZITU01DMMwvvnmG+O7777Lsr/atWtnLF++PNt9e/MR\ndWRkpNGiRQsjNTXVuHbtmtG8eXPLEVnbtm2NHTt2GIZhGCdPnrQc6WXX3rlzZ8uyjRo1sno9li1b\nZiQmJhpPPvmksXXrVsMwDGPlypVGmzZtDMO4fjRZtWpV4+TJk1nqTUpKMipUqGBER0dnu01RUVFG\n/fr1LUfXo0ePNoYOHWoYxvXXpXnz5sbVq1eNtLQ0o1WrVpb9c3PNt75+N6YTExONGjVqGImJiYZh\nXD/C/eyzz6z2+72u/2ZLliwxIiIijAEDBhgrV640DMMwEhMTjSZNmhiLFi2yHFHn9N6/sT237tMl\nS5YYL7/8smEYhrF27VojNDTUSE9PN9q0aWNs3rw5232L+x/XqGEzYWFhCg4OVpMmTdSkSRPVqlVL\nPXr0kCR169ZNM2bMkJ2dndzd3VW+fHmdO3fOsmxwcLBcXFzk6uoqHx8fXbx4Ufv27dNjjz2msmXL\nSpKee+45y/ybN2/Wc889J1dXVxUoUEBt27bVzz//bOlv1KiRHBwc5Ovrq+TkZAUFBUmSfH19denS\nJct833zzTZZr1LGxsTmO36BBA9nbX//ntGnTJr300kuyt7eXp6enmjVrprVr18rNzU2xsbFauXKl\n4uPjFRYWZrUNN8THx6t48eJ3tY+DgoK0ZMkSOTo6ytnZWZUrV9bZs2clScWKFdOyZct0/Phx+fj4\n6MMPP7xje052794tLy8v1alTR5LUokULnTlzRhcuXJAk+fj4yMfHJ8tyCQkJMgxDxYoVy3bszZs3\nKygoyDJPhw4dsuzfokWLWl7Dixcv3lXNkuTs7Gw5G3PlyhU1b97c8j60xfqfffZZff/995Kk9evX\nq1GjRpb3hpTze/9m2e3TZs2aqVixYurTp498fHzUoEGDu94fuP8Q1LCZ2bNnKzIyUosWLZK9vb1C\nQkLk4HD9asupU6cUHh6uZ555RsHBwTp48KDVKd3ChQtbfi9QoIAyMjIUHx+vIkWKWNrd3d0tv984\nVXhzX0xMjGW6UKFClrFunra3t7da70svvaTIyEirH09PzxzHv7kvMTFRr7/+uiXo169fr6SkJHl5\neWnatGmKjIxUw4YN1bNnz9v+h+/h4aE//vgjx/17Y7sjIiIUFBSk4OBgbdiwQcb/P75/3LhxKliw\noLp27apnnnnGcso9u/acJCQk6OzZs1YfYpycnBQbG5tlH9zM3d1d9vb2d9ym2NhYubm5Wabd3Nys\n9u/Nr/uN98PdcnR01Ndff609e/YoKChInTp10pEjR2y2/jp16ujgwYOKi4vTqlWrFBISYtWf03v/\nZtntU0nq1KmTNm3apA4dOmQ7D/4dCGrYnKenp8LCwjRx4kRL2+jRo1W+fHmtWbNGkZGReuKJJ3Ic\nx83NTYmJiZbpGwEhScWLF1dcXJxlOi4u7q6PSu/G3xm/RIkSmj59uiXoN23aZLn+XqtWLX322Wf6\n+eef9fDDD+uDDz7IsnzNmjUt18JvtmHDBm3dutWqbfLkyXJwcNDKlSsVGRlpdWRVvHhxvf3229qy\nZYtGjBihIUOGKCkpKdv2nJQoUUKPP/641YeYbdu2yd/f/47LFSxYUAEBAVq7dm2Wvq+//lpnzpzJ\nldfv1g9d8fHxlt8rVqyoqVOnavv27apbt65GjhxptWxuvn8cHR3VqFEjLVu2TKdPn1a1atWs+u/l\nvX+rzMxMTZkyRd26ddPkyZOzDXr8OxDUyBNdu3ZVVFSUdu7cKUmKiYmRn5+fChQooJ9//lmnT5/O\n8atblStX1smTJ3Xq1ClJ0nfffWfpa9iwoVasWKHk5GSlp6dr8eLFuXo68O+M37hxYy1YsECSlJ6e\nrnHjxunQoUPaunWrRo0apczMTLm6uuqJJ56QnZ2dJMnBwUEJCQmSpJdfflkHDhzQZ599ZvkPePfu\n3Ro5cqRcXFys1hUTEyNfX185OTnp8OHDioqK0l9//aW0tDSFhYVZTutXqlRJDg4OyszMvG37zadm\ns1OlShVdvnxZ+/btkySdPXtWAwcOtBzB30n//v01c+ZMbdmyRZJkGIbmzZunWbNmqUiRImrYsKHW\nrVunq1evSpIWLFjwt1+/hx56yPLVprNnz2rPnj2SpCNHjqhfv35KTU2Vk5OT/P39Lfv9htxY/82e\nffZZff7552ratGmWvju99x0cHKw+jGZn3rx58vb2VkREhDw8PDR37tx7rhXmx13fyBOFCxdWz549\nNWHCBC1evFi9evXS+PHjNWPGDDVp0kR9+/bV1KlT5efnl+0Ynp6eioiIUNeuXVWoUCGrU37BwcE6\ncuSI2rZtK8MwVLNmTb300ku5Vv/fGf/111/XqFGjLNfB69WrpwoVKigjI0OrVq1SUFCQnJyc5Onp\nqXHjxlnG79ixo8aOHauQkBDNmzdP77//vpo2bSpnZ2c99NBDmjJlimrUqGF1PbNbt26KiIjQ0qVL\nVaNGDUVERGjYsGEKCAhQ+/bt1aVLF0nXjzaHDx+uIkWK3Lb9dncw38rFxUVTp07VmDFjlJSUJEdH\nR/Xv3z9L6N1O7dq1NWnSJMvyBQoUUKVKlTR37lx5eHjIw8NDPXv21IsvvqjMzEz5+fnpnXfeyXHc\nmz3//PPq27evnnnmGVWsWNHqPoTSpUurRYsWcnR0VKFChTRixAirZQMCAv7x+m/21FNPyc7OLstp\nb0l3fO83bdpUEydO1NmzZ7N9RsAff/yhTz/9VIsWLZIkDRs2TKGhoWrWrJlKlix5zzXDvOyMu/k4\nDAAA8gWnvgEAMDGCGgAAEyOoAQAwMdPdTJaZmWm5UeVublIBAOB+ZhiG0tLSVKhQodt+A8N0QZ2U\n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\nsre3V/fu3bV161Z5eXlp3759WrNmjSRp4cKFSkxM1KxZs9S1a1eFhIToxIkTOnny5D/dxcB9jaAG\n8kFsbKzCwsIkSZmZmapRo4a6dOli6b9xlBoVFaXLly+re/fukqTU1FSVLl1ap0+flre3tzw8PCRJ\nNWvW1OHDh63WsX//fsvRsJubmz777LMsdezYsUNJSUmaPn26JMnBwUExMTE6evSoevbsKUmqVavW\nbbehQIECWR52czsODg6yt7dXp06d5ODgoBMnTujq1auqXbu2PDw81KNHDzVq1EjNmzdXkSJF1LJl\nS02aNEn79+9XkyZN1KRJkxzXAfybEdRAPrhxjTo7N57o5uTkpICAAH366adW/QcOHLB6lnNmZmaW\nMezs7G7bfjMnJydNmzZNnp6eVu2GYcje/votLNmFsa+vr/bs2aOQkBCr9n379lmdqt69e7eWLFmi\nJUuWyNXVVf369ZMkOTs7a968eTp06JA2bdqk9u3ba/78+QoJCVHdunW1detWTZ8+XQEBAXrzzTfv\nuB3Avxk3kwEmVrlyZe3fv1+XL1+WJK1Zs0br16/Xo48+qnPnzikhIUGGYViu/96sWrVq+umnnyRJ\nf/75pzp06KDU1FTZ2dkpLS1NklS9enXLqefY2Fi9++67kqSyZcta/p747caWpE6dOikyMlK//PKL\npW316tUaNmyYZXxJiomJkbe3t1xdXXX+/Hnt3btXqampOnDggL777jtVqlRJffv2VaVKlXTq1ClN\nnTpVGRkZCgkJ0bBhwxQVFfVPdyNwX+OIGjAxLy8vDRs2TK+++qoKFiwoFxcXTZgwQe7u7nrttdf0\n4osvytvbW97e3rp27ZrVss2bN9eePXvUsWNHZWRkqGvXrnJyclKdOnU0cuRIDR06VMOGDdOIESO0\natUqpaamqlevXpKkPn36KCIiQpGRkapWrVqWm8Ok62cF5syZozFjxmjChAlycXGRt7e3vv76azk5\nOVnmq1Onjr766iu98MILKl++vMLDwzV9+nR99NFH+uGHH/Ttt9/KyclJjz76qAIDA3Xx4kV169ZN\nbm5uyszMVHh4uG13MmByPEIUAAAT49Q3AAAmRlADAGBiBDUAACZGUAMAYGIENQAAJkZQAwBgYgQ1\nAAAm9n9QR+M8QEgGtgAAAABJRU5ErkJggg==\n",
        "metadata": {
         "tags": []
        },
        "output_type": "display_data",
        "text/plain": "<Figure size 576x396 with 1 Axes>"
       }
      ]
     }
    },
    "9e338844e75b4e17be8483529f5f38fd": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "d5b6fce1763b4b54898ff3397b0f5bb0": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "IntProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "IntProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "",
      "description": "Processing: ",
      "description_tooltip": null,
      "layout": "IPY_MODEL_2a81017413ca4fe789c2272a5831a069",
      "max": 5,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_57b94ac505d142769b79de2f1e5c1166",
      "value": 5
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
